Использование 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: , , , , ,

Добавить комментарий