Использование PHP-фреймворка Fat Free
Fat Free Framework – это микро-фреймворк PHP, выпущенный Bong Cosca в 2009 году. Созданный согласно принципам минимализма, данный фреймворк избегает внесения ненужных кодов и структур и сосредоточен на действительно важных задачах.
Почему микро-фреймворк?
Такой минималистский дизайн распространен среди так называемых микро-фреймворков, широкий выбор которых предлагает PHP. Другими популярными фреймворками являются Slim (PHP), Sinatra (Ruby) and express.js (node.js). Эти фреймворки имеют ряд преимуществ, а именно:
- Они чрезвычайно легки (Fat Free весит примерно 55kb);
- Удобная кривая обучения позволяет разработчикам сосредоточиться исключительно на важных задачах, не меняя при этом своего стиля кодирования;
- Они обладают большим количеством функций, которые обычно есть у полноценных больших фреймворков.
Конечно, микро-фреймворк не всегда является хорошим решением. Для объемных проектов, разрабатываемых целой командой, лучше выбрать большой и структурированный фреймворк, как Yii или Zend.
Начало нового проекта с Fat Free
Первый шаг – загрузить фреймворк и распаковать файл в root-каталоге нового проекта.
Учтите, Fat Free работает только на PHP 5.3 и более новыми версиями. Чтобы узнать, какая версия PHP используется, введите:
/path/to/php -v
Уточнив версию среды разработки, создайте файл «index.php», который будет использоваться как загрузочный файл нового проекта. В первую строку внесите Fat Free:
// FatFree framework
$f3 = require ("fatfree/lib/base.php");
Теперь нужно сказать приложению, в каком режиме (разработки или производства) находится проект, установив эту переменную:
// Set to 1 when in development mode, otherwise set to 0
$f3->set('DEBUG', 1);
База данных
Конечно же, нужно установить подключение к базе данных. При условии, что используется MySQL:
// MySql settings
$f3->set('DB', new DB\SQL(
'mysql:host=localhost;port=3306;dbname=mydatabase',
'dbuser',
'dbpassword'
));
Если используется SQLite:
$db=new DB\SQL('sqlite:/var/www/myproject/db/database.sqlite'));
Запросы
Чтобы отправить простой запрос, введите:
$result = $db->exec('SELECT field FROM table WHERE id = "1"');
При желании можно также использовать встроенный в Fat Free ORM. Запрос выше будет выглядеть так:
$table = new DB\SQL\Mapper($db, 'table');
$table->load(array('id=?', '1'));
$result = $table->field;
При помощи функции «DB\SQL\Mapper» можно преобразовать таблицу, которая уже находится в базе данных. Чтобы вместо добавить в таблицу новую запись, введите:
$table = new DB\SQL\Mapper($db, 'table');
$table->field = "Here is a value";
$table->save();
Примечание: отредактировать таблицу с помощью ORM нельзя.
Структурирование проекта
Поскольку Fat Free является микро-фреймворком, в нем нет готовой к использованию структуры проекта, потому ее нужно создать самостоятельно. Структура может выглядеть примерно так:
- api
-- models
- css
- js
- template
- views
- index.php
Но, конечно, можно использовать абсолютно любую структуру, и это еще одно преимущество подобных фреймворков.
Автоматическая загрузка
Во избежание внесения всех классов в проект Fat Free обладает функцией автозагрузки, что позволяет включать классы только тогда, когда они действительно нужны. Таким образом, чтобы вызвать все классы, необходимо ввести:
$f3->set('AUTOLOAD','api/models/');
В данном случае «api/models/» будет хранить все классы моделей. При вызове класса (к примеру, $myClass = new myClass()) Fat Free будет автоматически искать файл с таким же именем (myClass.php) в автоматически загруженном местоположении.
Маршрутизация
Следующий момент, с которым нужно ознакомиться – управление маршрутизацией приложений в Fat Free. Маршрутизация к домашней странице определяется так:
$f3->route('GET /',
function() {
echo 'This is my Home Page!';
}
);
Обратите внимание на атрибут GET. При необходимости его можно заменить на POST, или даже на GET|POST. В данном случае очевидно, что это функция определяет действие, которое должна выполнять эта страница.
Управлять различными параметрами можно при помощи синтаксиса:
$f3->route('GET|POST /post/@id',
function($f3) {
echo 'Post #'.$f3->get('PARAMS.id');
}
);
Как можно видеть, все, чему предшествует символ «@», будет рассматриваться как переменный параметр.
Использование шаблонов и представлений
Fat Free предоставляет возможность создавать шаблоны и представления. Чтобы внести свой шаблон/представление в команду «route», просто наберите:
$f3->route('GET /',
function($f3) {
// Instantiates a View object
$view = new View;
// Header template
echo $view->render('template/header.php');
// This is a variable that we want to pass to the view
$f3->set('name','value');
// Page view
echo $view->render('views/index.php');
// Footer template
echo $view->render('template/footer.php');
}
);
Чтобы передать представлению переменные, используйте функцию «$f3->set(‘nameVariable’, ‘value’)», а затем вызовите эту переменную в представление (к примеру, views/index.php), набрав `<?php echo $nameVariable; ?>.
Итоги
В данном руководстве были описаны все самые необходимые при создании нового приложения функции Fat Free framework. Чтобы получить более подробную информацию, читайте официальное руководство.
Tags: Fat Free, Fat Free Framework, MySQL, ORM, PHP, SQLite