Приступая к работе

Fat-Free Framework позволяет легко создавать целые веб-сайты в мгновение ока. С той же силой и краткостью, что и современные инструменты Javascript и библиотеки, F3 помогает вам писать более красивые и надежные PHP-программы. Один взгляд на ваш исходный код PHP - и любой человек легко поймет, как много вы можете сделать за такое небольшое количество строк кода и насколько мощны результаты.

F3 - это один из самых хорошо документированных фреймворков в мире. Обучение почти ничего не стоит. Нет строгого набора трудных для навигации структур каталогов и навязчивых шагов программирования. Нет «телеги» параметров конфигурации только для отображения Hello, World в вашем браузере. Fat-Free Framework дает вам большую свободу в стиле программирования.

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

Достаточно Сказано - Смотрите Сами

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

Если вы уже знакомы с composer и fat-free, вам, вероятно, просто нужны основные файлы вместо демонстрационного пакета. Поэтому вы можете require bcosca/fatfree-core или принести это fatfree-composer-app, чтобы начать работу.

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

Убедитесь, что вы используете правильную версию PHP. F3 3.7 не поддерживает версии более ранние, чем PHP 5.4. Вы будете получать синтаксические ошибки (ложные срабатывания) повсюду, потому что новые языковые конструкции и замыкания/анонимные функции не поддерживаются устаревшими версиями PHP. Чтобы узнать это, откройте консоль (bash shell на Linux или cmd.exe на Windows):

/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

Привет, Мир: Менее чем за минуту Fat-Free рецепт

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

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

Подготовьте base.php на первой строке с соответствующим путем. Сохраните приведенный выше фрагмент кода в качестве index.phpв корневую папку. Мы написали нашу первую веб-страницу.

Используя composer? Затем просто запустите composer require bcosca/fatfree и используйте следующее:

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

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

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

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

Итак, мы установили наш первый маршрут. Но это мало что даст, кроме того, чтобы дать F3 знать, что есть процесс, который будет обрабатывать его, и есть некоторый текст для отображения в веб-браузере пользователя. Если у вас на сайте гораздо больше страниц, вам нужно настроить разные маршруты для каждой группы. А пока давайте все сделаем просто. Чтобы заставить фреймворк перейти в режим ожидания запросов, мы выполняем команду $f3->run().

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

Все еще испытываете проблемы? Убедитесь, что $f3 = require('path/to/base.php'); назначение происходит до любого вывода в вашем скрипте. base.php изменяет заголовки HTTP, поэтому любой вывод, который был отправлен в браузер до этого назначения, вызовет ошибки.

Last updated