lupo
Новичок
Web framework
У кого есть время и желание, пожалуйста гляньте данный архив:
http://cs.mooby.org/src/cs.tar.gz
Рабочая версия доступна здесь: http://cs.mooby.org/
(домен сделан недавно, возможно не всеми днс подхвачен)
Запустить это у себя у вас не получится, потому как в архиве только сама реализация, без рабочих библиотек.
Мне интересны ваши комментарии об таком методе создания веб-сайтов, в частности метод "шаблонизации" и MVC.
Во многих местах используется Zend Framework, только со своим методом роутинга и шаблонов.
В архиве грубо говоря приложение, маленькая реализация обычной задачи редактирования таблицы.
В двух словах что происходит при запуске:
1. Заглавная страница это /index/IndexController.php и его метод indexAction. Переменная класса IndexController содержит массив всех записей.
2. В корне /app шаблон index.tpl является "загрузочным", он вызывает CS::Template("PageBody"). Шаблон PageBody.tpl получает "контекст" метода indexAction класса IndexController, таким образом там доступен массив $this->users
3. URL /user/add является ссылкой на метод addAction класса /user/UserController.php. Запрашивая эту страницу выполнится шаблон /index.tpl который вызовет PageBody.tpl, а потому-как в папке /user находится свой шаблон PageBody.tpl то он "подставится" вместо того, который в корне сайта.
4. Шаблон /user/PageBody.tpl вызывает CS::Template($this->template), переменная класса UserController $this->template назначается в самом методе addAction() и editAction($id).
5. Вызов страницы /user/edit/:id ссылается на метод editAction($id), переменная $id будет содержать то что указали после слеша в адресе, в случае если не передать обязательный параметр (т.е. вызвать просто /user/edit) сгенерируется ошибка 404. Параметров можно указывать и несколько, например описать метод как: editAction($id, $name) и передавать их так: /user/edit/1/Vasya
В общем гдето-так это и работает. Можно писать и намного сложнее, вложенные классы например, обязательные и необязательные параметры методов, связи между вложенными классами getParent(), getPath() и т.п.
Будет интересно услышать ваше мнение, комментарии и идеи.
У кого есть время и желание, пожалуйста гляньте данный архив:
http://cs.mooby.org/src/cs.tar.gz
Рабочая версия доступна здесь: http://cs.mooby.org/
(домен сделан недавно, возможно не всеми днс подхвачен)
Запустить это у себя у вас не получится, потому как в архиве только сама реализация, без рабочих библиотек.
Мне интересны ваши комментарии об таком методе создания веб-сайтов, в частности метод "шаблонизации" и MVC.
Во многих местах используется Zend Framework, только со своим методом роутинга и шаблонов.
В архиве грубо говоря приложение, маленькая реализация обычной задачи редактирования таблицы.
В двух словах что происходит при запуске:
1. Заглавная страница это /index/IndexController.php и его метод indexAction. Переменная класса IndexController содержит массив всех записей.
2. В корне /app шаблон index.tpl является "загрузочным", он вызывает CS::Template("PageBody"). Шаблон PageBody.tpl получает "контекст" метода indexAction класса IndexController, таким образом там доступен массив $this->users
3. URL /user/add является ссылкой на метод addAction класса /user/UserController.php. Запрашивая эту страницу выполнится шаблон /index.tpl который вызовет PageBody.tpl, а потому-как в папке /user находится свой шаблон PageBody.tpl то он "подставится" вместо того, который в корне сайта.
4. Шаблон /user/PageBody.tpl вызывает CS::Template($this->template), переменная класса UserController $this->template назначается в самом методе addAction() и editAction($id).
5. Вызов страницы /user/edit/:id ссылается на метод editAction($id), переменная $id будет содержать то что указали после слеша в адресе, в случае если не передать обязательный параметр (т.е. вызвать просто /user/edit) сгенерируется ошибка 404. Параметров можно указывать и несколько, например описать метод как: editAction($id, $name) и передавать их так: /user/edit/1/Vasya
В общем гдето-так это и работает. Можно писать и намного сложнее, вложенные классы например, обязательные и необязательные параметры методов, связи между вложенными классами getParent(), getPath() и т.п.
Будет интересно услышать ваше мнение, комментарии и идеи.