Вступление

Fat-Free Framework позволяет легко и быстро создавать веб-сайты и сервисы любой сложности. Обладая той же мощью и лаконичностью, что и современные Javascript-инструменты и библиотеки, F3 помогает писать качественные и надежные PHP-движки для Ваших проектов. Исходники Fat-Free Framework (далее F3) поймёт даже программист начального уровня. F3 прост для понимания, и имеет широкий спектр возможностей. F3 не имеет никаких сложных требований к настройке и конфигурированию. Ваш первый Hello Wolrld Вы напишите уже через 5 минут.

Декларативный подход F3 к программированию облегчает понимание PHP-кода как новичкам, так и экспертам. Если вы знакомы с языком программирования Ruby, вы заметите сходство между микро-фреймворком Fat-Free и микро-фреймворком Sinatra, которым вдохновлялся автор F3. Но в отличие от Sinatra и его PHP воплощений (Fitzgerald, Limonade, Glue - и это лишь некоторые из них), F3 выходит за рамки обработки маршрутов и запросов. Views фреймворка могут быть в любой форме, например, простой текст(plain), HTML, XML или сообщение электронной почты. Фреймворк поставляется с быстрым и простым в использовании шаблонизатором. F3 также безупречно работает с другими шаблонизаторами, включая Twig, Smarty, и собственно PHP. Модели взаимодействуют с Mapper-ами баз данных F3 и SQL-хелпером для более сложного взаимодействия с различными движками баз данных. Множество плагинов, которые доступны из коробки еще больше расширяют функциональность. Это всё делает F3 полноценным фреймворком для веб-разработки.

Перед началом работы

Распакуйте содержимое дистрибутива в любом месте жесткого диска.Если вы используете Composer, введите bcosca/fatfree,чтобы получить пакет F3. По умолчанию базовый класс фреймворка и дополнительные плагины находятся в папке lib/. Организуйте структуры каталогов любым удобным для вас способом. Вы можете переместить папки по умолчанию в любую папку, недоступную для Web, для лучшей безопасности. Удалите плагины, которые вам не нужны. Вы всегда можете восстановить их позже, и F3 подключит их автоматически.

Если вы уже знакомы с Composer и F3, вам, скорее всего, понадобятся только файлы базового класса и плагины, а не весь демонстрационный пакет. Если так, то устанавливайте через Composer bcosca/fatfree-core и можно начинать работать.

Важно: Если ваше приложение использует APC, Memcached, WinCache, XCache, сначала очистите все записи в кэше, прежде чем перезаписывать старую версию фреймворка новой. Это также может быть сделано (кроме XCache) вызовом $f3→clear('CACHE').

Убедитесь, что вы используете правильную версию PHP. F3 3.7 и более поздние версии, не поддерживают версии PHP старше 5.4.

Чтобы узнать Вашу версию php, выполните данный код в консоли:

/path/to/php -v 

PHP сообщит вам, какую именно версию вы запустили, результат будет примерно таким:-

PHP 5.6.22-1 (cli)
Copyright © 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright © 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright © 1999-2016, by Zend Technologies

В этом примере версия PHP 5.6, и она подойдёт для работы F3.

Старайтесь в своих проектах использовать самую свежую версию PHP. На данный момент F3 протестирован и успешно функционирует на PHP 7.4

Hello World

Пора начинать писать наше первое приложение:

<?php
$f3 = require('path/to/base.php');
$f3->route('GET /',
    function() {
        echo 'Hello, world!';
    }
);
$f3->run();

Положите base.php по указанному в коде пути, заменив path/to на Ваш путь. Сохраните приведенный выше фрагмент кода в index.php в корневой web-директории. Зайти на сайт - Hello World готов!.

Используете Composer? Тогда просто код должен иметь следующий вид:

require 'vendor/autoload.php';
$f3 = \Base::instance();
$f3->route('GET /',
    function() {
        echo 'Hello, world!';
    }
);
$f3->run();

Первая команда говорит интерпретатору PHP, что вы хотите, чтобы функции и возможности фреймворка были доступны вашему приложению. Метод $f3→route() информирует Fat-Free о том, что Web-страница доступна по соответствующему URL, обозначенному косой чертой (/). Любой посетитель вашего сайта, расположенного по адресу http://www.example.com/, увидит сообщение «Hello, world!», потому что URL / эквивалентен главной странице. Для создания маршрута, который разветвляется от корневой страницы, например http://www.example.com/inside/, вы можете определить другой маршрут с помощью строки роута GET /inside.

Маршрут, описанный выше, говорит фреймворку об отображении страницы только тогда, когда он получает URL запрос, используя HTTP GET метод. Более сложные Web-сайты, содержащие формы, используют другие HTTP-методы, такие как POST, и вы также можете реализовать с помощью роутера движка F3 командой $f3→route().

Если фреймворк увидит входящий запрос на вашу Web-страницу, находящуюся в корневом URL /, он автоматически перенаправит запрос в функцию обратного вызова (callback), которая содержит код, необходимый для обработки запроса и отображения соответствующей HTML странички. В этом примере мы просто посылаем строку 'Hello, world!' в веб-браузер пользователя, без callback.

Итак, мы создали наш первый маршрут (роут). Если на вашем сайте гораздо больше страниц, вам нужно установить различные маршруты для каждой группы данных, категорий сайта и тд.

После конфигурирования роутов, запускаем F3 командой $f3→run(), после чего он начинает обрабатывать запросы пользователя.

Если у вас возникли проблемы с запуском этой простой программы на вашем сервере, вам, возможно, придется немного подкорректировать настройки вашего Web-сервера. Взгляните на пример конфигурации Apache в следующем разделе (так же есть настройки для Nginx и Lighttpd).

Если всё равно не запускается, убедитесь, что строка $f3 = require('path/to/base.php'); находится выше любого кода, который использует функции F3.

Механизм маршрутизации →

Печать/экспорт