app/ - каталог приложения
controllers/ - контроллеры
models/ - модели
view/ - виды приложения
fra/ - framework
db/ - работа с базами данных
builder/ - построитель запроса
web/ - базовые классы для Веб приложения
web/ - корневая директория Web приложения. Содержит файлы, доступные через Web
test/ - phpunit тестирования
Ниже представлен код входного скрипта
// создание приложения
$frontController = new fra\web\FrontController();
// вызов метода для обработки входящего запроса
$frontController->run();
Следующий пример показывает post контроллер с двумя действиями: view и create:
namespace app\controllers;
use fra\web\Controller;
class Post extends Controller
{
public function actionView()
{
}
public function actionCreate()
{
}
}
- ID контроллера: строка, которая уникально идентифицирует контроллер среди всех других контроллеров одного и того же приложения
- ID действия: строка, которая уникально идентифицирует действие среди всех других действия одного и того же контроллера.
Маршруты могут иметь следующий формат:
ID/ActionID
Таким образом, если пользователь запрашивает URL http://hostname/site/index, то index действие в site контроллере будет вызвано.
Контроллер по умолчанию - Site
Действие по умолчаню - actionIndex
Создание действий не представляет сложностей также как и объявление так называемых методов действий в классе контроллера. Метод действия это public метод, имя которого начинается со слова action.
Модели являются частью архитектуры MVC (Модель-Вид-Контроллер). Они представляют собой объекты бизнес данных, правил и логики.
Вы можете создавать классы моделей путём расширения класса fra\db\Model.
Модели предоставляют рабочие данные в терминах атрибутах. Каждый атрибут представляет собой публично доступное свойство модели.
Вы можете получить доступ к атрибуту как к обычному свойству объекта:
$model = new \app\models\Contact;
// "name" - это атрибут модели Contact
$model->name = 'example';
echo $model->name;
Рендеринг видов
// $view путь файла
// на пример __DIR__ . '/../view/index.php'
$this->view->display($view);