Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Вывод результатов работы модулей [3]
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
caballero пишет:
большинство сайтов не требуют кучи собственных автолоадов
Да?
Значит я все усложняю? Можно скидывать все классы в одну директорию?
Только наверное нужно изучить реализацию пространства имен?
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
caballero
Отправлено: 17 Августа, 2013 - 16:24:45
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
если вы хотите разделить приложение на модули то скидывать все в одну папку как то странно
опять же даже если классы в разных папках можно написать автолоад и одной функцией. Только классы должны лежать в модулях однообразно по одинаковому пути чтобы функция знала где их искать имея только список модулей
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
caballero пишет:
если вы хотите разделить приложение на модули то скидывать все в одну папку как то странно
опять же даже если классы в разных папках можно написать автолоад и одной функцией. Только классы должны лежать в модулях однообразно по одинаковому пути чтобы функция знала где их искать имея только список модулей
Ну да, у меня как бы деление на модули. А как иначе? Нужно же как-то распределить файлы по каталогам, чтобы не сваливать все в кучу
С классами понятно. Да, можно и один автолоад иметь, только реализовать поиск в разных каталогах. Главное чтобы автолоад от этого не стал медленно работать
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
DelphinPRO
Отправлено: 17 Августа, 2013 - 18:52:40
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Hapson пишет:
Ну да, у меня как бы деление на модули. А как иначе? Нужно же как-то распределить файлы по каталогам, чтобы не сваливать все в кучу
Модульность нужна не для того, чтобы файлы не сваливать в кучу, а для того, чтобы система была легко расширяемой. А по каталогам распихивают уже для удобства, чтобы не запутаться.
Hapson пишет:
Да, можно и один автолоад иметь, только реализовать поиск в разных каталогах.
Можно. Дело вкуса. У меня два. Один для загрузки классов ядра, второй - для загрузки расширений.
Поясню.
Ядро лежит в папке system/core/*. Классы имеют имена типа (с неймспейсами)
\d\mvc\Controller
\d\db\Database
Расширения лежат в папке system/extensions/*. Классы имеют имена
\d\users\UsersController
\d - это типа вендор
Таким образом в первом загрузчике я заменяю \d на /system/core
во втором соответственно на /system/extensions, получая адрес файла.
Да, можно было все сделать в одном обработчике, примерно так
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
DelphinPRO
Не очень понятно, но сейчас изучу пространство имен и пойму
Чтобы не писать много, давайте я скину папку своего "проекта", а вы посмотрите - это модульная структура или это просто распихано по папкам для удобства
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
Hapson
Отправлено: 18 Августа, 2013 - 07:45:27
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
DelphinPRO пишет:
caballero пишет:
человек и так запутался в собственном изделии а вы ему еще ACL, CRUD, ядра и прочие страшные слова.
Hapson пишет:
Понятно
Значит у меня ядро это папка classes, в которой лежат классы.
ну вот, с одним "страшным" словом мы разобрались
Нет у меня ядра нифига... Есть у меня каша - куча-мала. Авторизация проверяется в процессе загрузки шаблона, и то, если включен модуль.
Надо переделывать немного.
Я так понимаю, нужно сделать какую-то папку, например Engine или Core и там сделать папку classes. Там складировать классы, без которых нет сайта:
Users - работа с пользователями, сессии
DB - работа с бд (возможно не только mysql, но и sqlite или вообще файлы)
Router - обработчик запросов
Cache - кеширование (не знаю че кешировать, но потом наверное дойдет и это до меня)
Ну как-то так.
В папке Core также сделать папку extensions - туда запихать функционал для работы со статьями и пользователями - users и articles
В корне создать папку Modules, в которой можно например сделать модуль Comments, Sitemap, Banners...
ЧПУ сделать в ядре по-умолчанию - зачем сайт без ЧПУ
Ну вообщем как-то так я вижу (Добавление)
PS
Я так думаю (так я вижу), что в index.php нужно написать что-то типа
Engine::getInstance()->run();
В классе engine запустится роутер, который возможно сразу выкинет 404 - тогда дальше ниче делать и не надо
Если нет 404, то запустится класс Users, который проверит авторизацию
Ну а дальше уже загрузка шаблона
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
DelphinPRO
Отправлено: 18 Августа, 2013 - 13:43:42
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Уже лучше, но вы старайтесь не усложнять на первом этапе разработки. Напишите минимальную функционирующую систему без всяких наворотов. Но придерживаясь своей задуманной архитектуры. А потом уже будете дописывать остальные части.
Иначе ваша разработка затянется на долгие, долгие годы...
----- Чем больше узнаю, тем больше я не знаю.
Hapson
Отправлено: 18 Августа, 2013 - 13:48:56
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
DelphinPRO пишет:
Уже лучше, но вы старайтесь не усложнять на первом этапе разработки. Напишите минимальную функционирующую систему без всяких наворотов. Но придерживаясь своей задуманной архитектуры. А потом уже будете дописывать остальные части.
Иначе ваша разработка затянется на долгие, долгие годы...
Да, я об этом уже подумал.
Изначально была цель написать блог и в нем писать записи о процессе моего обучения.
Теперь вот все идет не к блогу, а к какому-то универсальному приложению.
Уже подумываю на wordpress блог завести )))
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.