FrontEnd контроллеры в OctoberCMS
В OctoberCMS нет концепции frontEnd контроллеров. Иными словами, идеология этой CMS не подразумевает возможность просто создать некий ProductController
с несколькими action
для обслуживания маршрутов Route::method('product/{id}', 'ProductController@show')
. Вместо этого предлагается использовать компоненты плагинов. Именно компоненты являются формой frontEnd контроллеров.
Алгоритм получается следующий:
- Создаем плагин
- Разрабатыаем функциональность как компонент плагина
- Создаем страницу CMS, прописываем нужный URL
- Прицепляем к странице компонент
- На нужном URL получаем функциональность
Альтернативой идеологии OctoberCMS является традиционные routes из laravel. Samuel Georges, один из создателей OctoberCMS, опубликовал пример плагина, который показыает как это работает. Вкратце:
- Создаем плагин
- В корень кладем файл
routes.php
, где регистрируем маршруты.Route::get('/welcome', 'authorName\pluginName\WelcomeController@index');
Если что-то не работает через
routes.php
, то в первую очередь следует добавить'middleware' => 'web'
- В корне создаем контроллер WelcomeController.php
namespace authorName\pluginName;
use Illuminate\Routing\Controller;
class WelcomeController extends Controller
{
/**
* Show 'Hello World' message.
*
* @return Response
*/
public function index()
{
return 'Hello World';
}
}
- Прикручиваем Response::view и наслаждаемся результатом