onotole.myarena.ru
Участник
- Сообщения
- 42
- Реакции
- 33
Как успехи?
жив цел орёл, всё будет, но сперва диплом в мае)повыпендривались и на этом закончилось :-D
Как успехи?
Router
Роутер предназначен для маршрутизации запросов и вызова нужных классов.
Добавление правил
Правила добавляются в файл app/config/config.php
Самый простой вариант создания страниц это описать генерацию контента прямо в правиле, делается это так:
Router::Get('', function(){
echo 'Hello world!';
});
Таким образом мы создали правило для главной страницы, перейдя по которой на экране отобразится текст Hello world! Первый параметр в методе Get это само правило, вторым параметром передается лямбда-функция внутри которой генерируется контент. Помимо методов Get существуют методы Post, Put, Ajax, Delete, Head, Options.
Каждый из перечисленных методов регистрирует правило для определенного типа запросов. Что бы правило обрабатывалось для всех типов необходимо воспользоваться методом Add, так же с помощью метода Add вы можете зарегистрировать правило сразу для нескольких типов:
Router::Add('', function(){
echo 'Hello world!';
}, array('GET', 'POST'));
Таким образом мы регистрируем правило для типов GET и POST.
Для вызова модуля необходимо воспользоваться следующей формой записи:
Router::Get('catalog/add', 'my_catalog::add');
Таким образов обратившись по ссылке http://mysite/catalog/add роутер вызовет класс app/mod/my_catalog/controller.php и запустит в нем метод action_add.
Если для определенного модуля отсутствует правило роутинга то будет вызываться то что пишет пользователь, например если мы не создадим правило для запроса http://mysite/catalog/add то роутер попытается вызвать класс app/mod/catalog/controller.php и запустить в нем метод action_add.
URL адрес разбирается так:
http://mysite/Модуль/Действие/Параметр-1/Параметр-2/...
Можно не указывать действие, тогда роутер будет пытаться запустить метод action_index.
При вызове метода в модули или вызове лямбда-функции во внутрь их передаются параметры в том порядке в котором они были указаны в URL, пример:
Router::Add('catalog', function($id = 0){
echo 'Category ID: ' . $id;
});
Таким образом при обращении по адресу http://mysite/catalog/233121 результатом выполнения запроса будет текст Category ID: 233121
Или ещё один аналогичный пример:
Router::Add('company/yandex', function($id = 0){
echo 'Yandex Blog ID: ' . $id;
});
При обращении по адресу http://mysite/company/yandex/233121 результатом выполнения запроса будет текст Yandex Blog ID: 233121
Как вы заметили используются управляющие конструкции состоящие из 2х частей, остальное параметры. Однако можно писать адреса типа http://mysite/catalog/yandex/blog правило такое:
Router::Add('company/yandex/blog', function(){
echo 'Yandex Blog';
});
Но в таком случае параметры не могут быть распознаны. Для решения данной проблемы были введены шаблоны, примеры ниже.
Router::Add('company/yandex/blog/(:num)', function($action, $id = 0){
echo 'Yandex ' . $action . ' ID ' . $id;
});
Таким образом при переходе по адресу /company/yandex/blog/4564 мы увидим на экране текст: Yandex blog ID 4564
Если параметр 4564 не обязателен, то можно использовать (:num?) тогда мы сможем обратиться по адресу: /company/yandex/blog и /company/yandex/blog/4564 используя одно правило.
infernozet, ты прости за прямоту, но такую мозговую еблю с движком никому не хочется проворачивать.
Толку от твоего движка, если для добавления страницы (да и вообще манипуляций типа "юзер-скрипт") нужно лезть в конфиг и осваивать базисы php?
Сдался такой движок кому, а? Я лучше, в таком случае, напишу свой собственный (либо модуль, чего изобретать велосипеды?), чем платить за набросок.
vB и несколько модулей сделают мне полностью интегрированную систему с HLStatsX, SB и управлением серверами. А ты ещё намереваешься деньги на этом делать. Насмешил, правда.
Либо делайте так, чтоб было по-веб00, либо бросайте это дело, ибо, повторюсь, нахрен кому надо лезть в файлы движка и что-то там менять.
Весьма интересный проект, продолжайте работать, но не забывайте про свой диплом, он важнее. Ну а нам остается лишь ждать, думаю к июню уже будет, что показать
Спасибо. Я тоже очень жду когда смогу выпустить проект, но выпускать совсем сырое будет не очень хорошо :)
Так и надо указать, что для разработчиков. Толку той 2/3 пользователей от того, что написано?Это для разработчиков, для написания модулей, для конечного пользователя не потребуется навыков программирования.
Всякие интеграции и т.д. будут подключаться в пару кликов мышкой.
Или вы хотели чтобы система сама генерировала код без вашего участия, но тот о котором вы думали за завтраком?
Так и надо указать, что для разработчиков. Толку той 2/3 пользователей от того, что написано?
Я очень надеюсь, что не потребуется навыков. Если нет — CMS ничего не стоит.
Я хочу, чтобы программа генерировала код без моего участия, о котором я думаю за завтраком. Или вообще, сама делала программу, о которой я думаю, но ещё и без багов, сама подгоняла под все ОС, под все юзерагенты, чтоб не падал сервер. Много чего хочу.
Только это сюда не отностися.
Сюда относится конкретно: я хочу видеть web 2.0 движок, которым как раз в пару кликов можно будет управлять.
Пока что я не вижу этого нигде здесь.
infernozet, и под что же подбиваться будете? 3.0, а?