Плагины

Плагины

О Плагинах F3

Плагины - это не что иное, как автоматически загружаемые классы, которые используют встроенные фреймворки для расширения возможностей и функциональности F3. Если вы хотите внести свой вклад, оставьте заметку в обезжиренной дискуссионной зоне, размещенной Google Groups, или расскажите нам об этом в #fatfreeIRC-канале FreeNode. Кто-то еще может быть вовлечен в подобный проект. Рамочное сообщество будет очень благодарно, если мы объединим наши усилия.

Изображение

Капча изображения

Могут быть случаи, когда вы хотите сделать свои формы более защищенными от спам-ботов и вредоносных автоматических скриптов. F3 предоставляет captcha()метод для генерации изображений со случайным текстом, которые предназначены для распознавания только людьми.

$img = new Image();
$img->captcha('fonts/CoolFont.ttf',16,5,'SESSION.captcha_code');
$img->render();

Этот пример генерирует случайное изображение на основе нужного вам шрифта TrueType. fonts/Папка - это подпапка в UIпути приложения. Второй параметр указывает размер шрифта (выполняется процесс увеличения в 2 раза, то есть размер 16 будет производить изображение высотой около 32 пикселей). Третий параметр определяет количество шестнадцатеричных символов для генерации, допустимые значения между минимумом 4 и максимумом 13.

Последний параметр представляет собой имя переменной F3. Используйте его для хранения строкового эквивалента изображения CAPTCHA,чтобы сравнить его с пользовательским вводом. Чтобы сделать перезагрузку строки безопасной, мы задали переменную сеанса: SESSION.captcha_codewhich maps to$_SESSION['captcha_code'], которую вы можете использовать позже, чтобы проверить, соответствует ли входной элемент в отправленной форме этой строке.

обработка изображений

Плагин image также предоставляет дополнительные функции обработки для масштабирования, обрезки и наложения изображений, а также регулировки яркости, контрастности и многого другого. Пожалуйста, посмотрите на ссылку API класса изображений для описания дополнительных функций.

Лог

Посмотрите, как легко создать пользовательский регистратор, чтобы сохранить все Ваши интересные события приложения.

$logger = new \Log('app-events.log');
$logger->write('User John logged in.');

Снижение

Конвертируйте ваш любимый текст Markdown (Wikipedia) в HTML.

$filePath = 'content/readme.md';
$fileContent = $f3->read($filePath); // read file contents

echo \Markdown::instance()->convert($fileContent);

Сеть

Захват данных с другого сайта

Мы рассмотрели почти все функции, доступные в фреймворке для запуска автономного веб-сервера. Для большинства приложений эти функции будут служить вам довольно хорошо. Но что делать, если вашему приложению нужны данные с другого веб-сервера в сети? У F3 есть веб-плагин, который поможет вам в этой ситуации:

$web=new Web;
$request=$web->request('http://www.google.com/');
// another way to do it:
$request=Web::instance()->request('http://www.google.com/');

Этот простой пример отправляет HTTP-запрос на страницу, расположенную по адресу www.google.com и хранит его в переменной $requestPHP. request()Метод возвращает массив, содержащий HTTP-ответ таким образом, что $request['headers']и $request['body']представляют собой заголовки ответа и тело соответственно. Мы могли бы сохранить содержимое с помощью команды F3:: set или отправить Эхо-вывод непосредственно в браузер. Извлечение другой HTML-страницы из сети может не иметь никакой практической цели. Но это может быть особенно полезно в спокойных приложениях, таких как запрос сервера CouchDB.

$host='localhost:5984';
$web->request($host.'/_all_dbs'),
$web->request($host.'/testdb/',array('method'=>'PUT'));

Возможно, вы заметили, что вы можете передать массив дополнительных опций этому request()методу:

$web->request(
    'https://www.example.com:443?'.
    http_build_query(
        array(
            'key1'=>'value1',
            'key2'=>'value2'
        )
    ),
    array(
        'header'=>array(
            'Accept: text/html,application/xhtml+xml,application/xml',
            'Accept-Language: en-us'
        ),
        'follow_location'=>FALSE,
        'max_redirects'=>30,
        'ignore_errors'=>TRUE
    )
);

Если переменная фреймворка CACHEвключена и удаленный сервер дает вашему приложению команду кэшировать ответ на HTTP-запрос, F3 будет выполнять этот запрос и извлекать кэшированный ответ каждый раз, когда фреймворк получает аналогичный запрос от вашего приложения, таким образом ведя себя как браузер.

Fat-Free будет использовать любые средства, доступные на вашем веб-сервере для запуска request()метода: PHP stream wrappers (allow_url_fopen), модуль cURL или низкоуровневые сокеты.

Обработка Загрузки Файлов

В F3 есть утилита для отправки файлов на HTTP-клиент, то есть для выполнения запросов на загрузку. Вы можете использовать его, чтобы скрыть реальный путь к вашим файлам загрузки. Это добавляет некоторый уровень безопасности, потому что пользователи не смогут загружать файлы, если они не знают имена файлов и их расположение. Вот как это делается:

$f3->route('GET /downloads/@filename',
    function($f3,$args) {
        // send() method returns FALSE if file doesn't exist
        if (!Web::instance()->send('/real/path/'.$args['filename']))
            // Generate an HTTP 404
        $f3->error(404);
    }
);

Удаленное управление и распределенные приложения

Этот request()метод также может быть использован в сложных SOAP-или XML-RPC-приложениях, если вы обнаружите необходимость в другом веб-сервере для обработки данных от имени Вашего компьютера - таким образом, используя возможности распределенных вычислений. W3Schools.com имеет отличный учебник по мылу. С другой стороны, TutorialsPoint.com дает хороший обзор XML-RPC.

больше плагинов

Есть еще много плагинов, доступных для F3. Взгляните на их ссылку API, чтобы получить больше информации о них.

Все еще не нашли то, что искали? Возможно, вы найдете его в разделе плагинов, внесенных пользователем.

Last updated