ФорумПрограммированиеPHP для идиотов → Правильно ли я пишу ?

Правильно ли я пишу ?

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 марта 2010 г. 12:43, спустя 35 минут 14 секунд

    md5, эээээ :====э
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 7 марта 2010 г. 14:36, спустя 1 час 53 минуты

    Troy, поехали срать:
    1. <h3 style="display:inline;">{title}</h3> - это что за хрен у тебя? нафиг заголовку стиль инлайн ? не знаешь как сделать чтоб у заголовка не было всяких отступов? Но то так, херня по сути :)
    2. Нафиг в папке с темплейтами шаблоны админки? Они должны быть где-то в системных разделах, так как независимо от основного шаблона эти темы не меняются. А в твоем случае придется тупо копировать папку админ каждый раз, когда создаешь свою тему.
    3. Про названия классов тебе уже сказали. То же и относительно названия файлов: делай их меленьким регистром.
    4. Зачем в папке конфигов столько файлов? Может удобнее сделать максимум 2: юзерская часть и административная часть, а то и вовсе все в один объединить? Где-то провтыкал с настройками, и епи себе моск где что пропустил. Да и подключение одного файла - это быстрее недели подключать их десяток.
    5. Не совсем понимаю (не особо разбирался, ибо лень + утро) нафиг аж три файла users.php: в модулях, в классах, в экшенах? Может достаточно их в одно место запихнуть (к примеру, в папке модулей создать папку "юзерс" и туда пихать все, что касается модуля юзверей) ?
    6. Пагинатор в папке библиотек. А на кой он там? Он уже или модуль (что мне более всего импонирует) или же в папке классес (у тебя ведь там все вспомогательные классы). А так как в нем вшит уже шаблон отображения (ХТМЛ-код), то тем более в ядро его пихать не стоит (файлы ядра ведь неззя изменять), потому как твой ХТМЛ-код не есть во всех случаях удобным. Но это ИМХО

    Ну и не совсем понятно нафиг нужна папка "экшенс" с имеющимися внутри файлами, если по сути это должны быть либо модульные составляющие (то есть где-то в папке с модулями должны быть) либо "ядрённые" (ака системные). А сейчас они непришейкобылехвост, и не совсем понятно что с ними делать. Но это опять таки ИМХО.
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 7 марта 2010 г. 17:48, спустя 3 часа 12 минут 30 секунд

    Поехали отмазыватся)
    1. с верстальщиком спорить ? нее
    2. Это да. сам вот думаю убрать
    3. Уже говорили
    4. конфиги отвечают на совсем разные настройки, некоторые из них не всегда используются, сваливать все в 1 файл тоже не айс
    5. Их по моей логике должно быть 2-3, 1. Это сам экшен, там регистрация , авторизация и тп. 2. Это вспомогательный класс для 1 3. Это сам модуль, он загружается на каждой странице, служит для разделения прав и тп.
    6. Пагинатор считаю отдельой библиотекой , папка classes это папка для моделей
    7. "Экшенс" - это контроллеры
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 7 марта 2010 г. 19:46, спустя 1 час 57 минут 19 секунд

    Troy, если 7 пункт - это контроллеры, то что же тогда будет модулем? неужели модули не имеют контроллером? Или, если имеют, то мне что, нужно закинуть файлы с модулем и в папку "модули" и в папку "контроллеры" ? не совсем корректно, как по мне. Хоть, это малость ИМХО. Потому это я не спорю, просто пытаюсь понять зачем.

    А относительно конфига: ну загрузишь ты лишний 1 кб информации системного конфига (заметь, не какого-то там, а именно системного, то есть очень важного и необходимого в том или ином месте). Зато когда это все сразу понадобится. то оно вот уже готово к использованию. Ты ведь не сопротивляешься, когда загружаешь класс с n-количеством методов, из которых в данный момент по сути нужны максимум лишь парочка. И таких классов у тебя много. Вот и с конфигами сделай нечто вида класса (а можно и даже сам класс), в котором будут разного рода "методы" (ну или же реальные методы) и вызывай те из них, которые в данный момент нужны. Остальные пусть повисят в памяти. они много не съедят, зато всегда под рукой.

    Пагинатор - это все же не библиотека, а банальный набор из пары математических функций, и у тебя ещё и при этом всем он разбавлен ХТМЛ-кодом. Все же склонен к модулю, но не либе.

    По юзерам: почему модуль, который делит юзверей на группы и т.д. не может также заниматься аторизацией и регистрацией этих самых юзверей? По сути ведь обе этих части программы должны работать с одними и теми же таблицами и данными. И если для одной из частей изменить структуру данных, то и вторую тоже нужно менять. Получается, что модуль - это уже не отдельная, в какой-то мере независимая частица, а выходит что это неотъемлемая часть общей системы (хреново бубет если этот модуль отключить).
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 7 марта 2010 г. 20:19, спустя 33 минуты 37 секунд

    Под контроллер я понимаю класс , который грубо говоря отвечает за контент страницы , под модулем я понимаю кусок кода, который постоянно подгружается в систему, а библиотека это кусок кода (класс) выполняющий определенные задачи , но нужный не постоянно , а иногда , поэтому по моему мнению пагинатор это все же библиотека (надеюсь нас рассудят)

    Конфиги это уже личное предпочтение, я люблю именно делить

    Сайт может работать и без юзеров , так как доступ к контенту предоставить можно и без регистрации
    Спустя 18 сек.
    з.ы. 1070 круто
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 8 марта 2010 г. 2:26, спустя 6 часов 6 минут 5 секунд


    Под контроллер я понимаю класс , который грубо говоря отвечает за контент страницы , под модулем я понимаю кусок кода, который постоянно подгружается в систему, а библиотека это кусок кода (класс) выполняющий определенные задачи , но нужный не постоянно , а иногда , поэтому по моему мнению пагинатор это все же библиотека (надеюсь нас рассудят)

    Херня получается: берем модуль "новости" - он нужен только на страницах новостей, тогда нафига нам его всегда подгружать? То же и с пагинатором. А контроллер - это часть модуля, но неотъемлемая часть. И модуль тоже занимается контентом страницы, если он для этого предназначен.

    Конфиги это уже личное предпочтение, я люблю именно делить

    С этим спорить не буду, так как каждому свое.

    Сайт может работать и без юзеров , так как доступ к контенту предоставить можно и без регистрации

    Точно также и без новостей, если это станица галереи, и без сисег, если это страница стихотворений А.С. Пушкина.
    Короче, тут не стану спорить. У тебя и так есть чего исправлять.

    п.с. А в целом молодец, по-моему очень даже отлично стараешься.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 8 марта 2010 г. 3:39, спустя 1 час 13 минут 9 секунд

    Действительно запутанно, библиотека, модуль, контроллеры. Опиши сначала принципы работы, или допустим, полностью путь работы движка при запросе. А далее будет легче разобраться.
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 8 марта 2010 г. 3:46, спустя 6 минут 59 секунд

    Пагинатор в библиотеку + к нему адаптеры, + скрипты вида
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 8 марта 2010 г. 7:36, спустя 3 часа 50 минут 41 секунду

    Givi, новости это не модуль, это контроллер, в системе 4 вида файлов : 1. это контроллеры , они находятся в папки actions , отвечают за вывод контента 2. Это модели, лежат в папке classes , 3. Это модули, модули могут влиять на систему , либо выводить какой-нибудь блок и тп. 4. Библиотеки , это вспомагательные классы, такие как пагинатор, класс для фида новостей и тп.
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 8 марта 2010 г. 7:48, спустя 11 минут 15 секунд

    krasun, хорошо, начинаю:
    к примеру у нас такой запрос site.ru/news/add/tynimce/ , сначало урл обрабатывается роутером и получается так
    Router::$Action = 'news';
    Router::$Event = 'add';
    Router::$Params = array('tynimce');

    Исходя из значения Action система подгружает дефолтный экшен, нужный экшен или экшен с ошибкой

    Пример экшена

    <?
    class news extends Action {

    function _load () {

    $this->SetDefaultEvent('main');
    $this->AddEventPreg('(.*)', 'full');

    }

    function main () {
    }

    function full () {
    }

    }


    сначало в функции _load мы регистрируем доступные урл и функции соответственно которые будут запускаться, тут более менее ясно

    Теперь про модели, модели находятся в папке classes , каждый файл называется так же как и контроллер (экшен) и содержит внутри себя класс с названием %controller%_class

    Теперь про модули , модули загружаются автоматически (точнее это можно настроить, но пока не об этом) ДО загрузки контроллера (экшена)
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 8 марта 2010 г. 14:42, спустя 6 часов 54 минуты 17 секунд

    Все, перестаю спорить. У нас совсем разное понятие о системе.
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 8 марта 2010 г. 14:48, спустя 6 минут 30 секунд

    Givi, а мне наоборот нравятся споры , можно взглянуть на вопрос с другой стороны, узнать чужое мнение , посмотреть на минусы своего мнения
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 марта 2010 г. 15:02, спустя 14 минут 1 секунду

    Спор - плохо
    Дискуссия - хорошо
    =)
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 8 марта 2010 г. 16:34, спустя 1 час 31 минуту 34 секунды


    Спор - плохо
    Дискуссия - хорошо
    =)
    в споре познаётся истина! :)
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 марта 2010 г. 17:40, спустя 1 час 5 минут 37 секунд

    Дискуссия (от лат. discussio — рассмотрение, исследование), обсуждение какого-либо спорного вопроса, проблемы; спор. Важной характеристикой дискуссии, отличающими её от других видов спора, является аргументированность. Обсуждая спорную (дискуссионную) проблему, в которой каждая сторона, оппонируя мнению собеседника, аргументирует свою позицию.


    В дискуссии рождается истина =)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!