Fuelphp В Поле

Приветствую, хабралюди и желающие.

Написание этого поста было вопросом времени, поэтому я не стал откладывать и решил написать сейчас.

Ранее я публиковал описание возможностей Fuelphp. На тот момент я как раз создал русский сайт документации, группу и написал с использованием этой халявы несколько тестовых приложений.

В этой статье я хочу поделиться своим опытом использования этого инструмента в реальном проекте.

Необходимо было создать удаленную админку и реализовать управление клиентскими сайтами через API. Требования: модульность, оптимизация под нагрузки, использование Youtube API, ЧПУ.

Далее я укажу конкретную задачу, а наоборот опишу, какие инструменты использовались и насколько эффективно: 1. Авторизация пользователей, в том числе через соцсети вк и фейсбук: Auth+oAuth+oAuth2: установил два недостающих пакета через масло, подключил их в конфиге, запустил миграцию через масло - после чего в базе данных были созданы необходимые признаки.

Все работало как часы, драйвера вк не было, написал за 10 минут. 2. Организация шаблонов: Я отказался от шаблонизаторов в пользу оптимизации.

Было две идеи, как лучше организовать шаблоны.

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

Второй — реализовать «виджеты» как отдельные модули и вставлять их с помощью HMVC-запроса.

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

Более того, эти данные можно было бы собрать в один большой кешированный запрос.

Не знаю, правильное ли я решение принял, но пока с проблемами не столкнулся, а кеширование запросов увеличило скорость почти в 10 раз.

3. Кириллица ЧПУ: 5 минут времени, это очень быстро.

урленкод() — урлдекод() 4. Генерация карты сайта: не обнаружено в стандартных пакетах.

Здесь в игру вступает красота упаковок.

Я набрал в Google что-то вроде sitemap gen php, нашел подходящий класс и через пять минут пакет Fuelsitemap у меня уже был.

Сделать пакеты в топливе проще простого; как только сделаешь хотя бы один, остановиться уже невозможно.

5. Реализация админки: здесь решено было поставить в приоритет скорость, так как бэкенд тот же) extjs4 был выбран в надежде на скорость разработки и надежность.

Воссоединились с Топливом как семья.

Однако я больше не буду использовать extJs4. Это трехметровый ящик с инструментами, в нем можно делать все, и если с ним постоянно работать, то это экономит время, и ты наконец-то вспоминаешь, что и где находится внутри него.

Сюда также входят обновления, которые часто могут нарушить обратную совместимость.

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

Хорошее решение для студии, где над пользовательским интерфейсом работают один или два человека.

6. API администратора: Fuelphp имеет несколько контроллеров, это обычный Controller, для реализации шаблонов Controller_Template (базовый шаблон назначается через переменную $template).

Чтобы вернуть xml, json, сериализацию и другие форматы, используйте Controller_Rest или Controller_Hibryd(Controller_Template+Controller_Rest).

Причём ничего дополнительно никуда писать не нужно, достаточно подставить .

json или .

serialize и т.д. Когда вы вызываете метод, он сам преобразует данные в нужный формат; внутри метода данные определяются как массив.

6.1 Безопасность API: Далее встал вопрос о мерах безопасности при передаче данных.

Во-первых, было решено использовать шифрование данных с помощью ключа, во-вторых, изменить метод запроса с get на post. В-третьих, входить в доступ по паролям, которые передавались в самих данных и в шапке сервера, естественно тоже зашифрованные ключом.

Для шифрования я использовал Crypt из Fuelphp, но для передачи данных и заголовков хотелось использовать CURL. Схема была стандартная гугловая -> выбор подходящей обертки -> изготовление пакета -> его использование.

7. Использование API Youtube: здесь помог созданный ранее пакет Fuelcurl (так я его назвал).

Эта задача в основном включала в себя логику, которая могла бы пригодиться в следующем проекте, поэтому мне не хотелось «жестко зашивать» это решение в методы контроллера.

И чтобы я мог легко и непринужденно использовать этот функционал в следующих проектах, был создан отдельный пакет Fuelyoutube. 8. Оптимизация: Сервер - нгинкс.

Код — Используя стандартные возможности, я кэшировал отдельные запросы в базу данных.

- Api Yotube - запрос к апи происходит один раз, далее он берётся из базы в виде кеша.

— Подключен файловый кэш.

Мне показалось достаточным использовать эти меры, по крайней мере на данном этапе.

Хотя я понимаю, что это далеко не предел оптимизации нагрузки.

Вся разработка заняла у меня две недели.

Примечания: — В результате получилось гибкое приложение, где почти вся более-менее повторно используемая логика вынесена в отдельные пакеты с целью повторного использования в будущих проектах.

Пакеты — это нечто постоянное и переносимое из проекта в проект. Вы делаете это один раз, и решение никогда не исчезает – это действительно потрясающе.

«Сами контролеры лишь осуществляют проверки и направляют действия.

— Большим преимуществом пакетов является то, что вы можете повторно использовать логику везде: в шаблоне, в контроллере, в модуле.

— За все время использования фриворка я несколько раз обновлял ядро — обратная совместимость не нарушалась, обновление сводилось к копипасту и замене папки ядра.

— Топливо настолько простое, насколько вы хотите, например, я не использую много юнит-тестов, нефтяной консоли, разделения разработки на разработку и производство, нефтяную миграцию и многое другое.

Но я знаю одно — когда они мне понадобятся, я легко смогу начать ими пользоваться, так как в Fuelphp нет ничего сложного.

На этом все, всем удачи и скорейшей реализации планов.

Выездной FuelPHP - Fuelphp.com FuelPHP на GitHub — github.com/топливо Тестируйте CMS на GitHub — github.com/samitimal/mod-cms Шпаргалка - www.novius-os.org/fuelphp-cheatsheet/index.htmЭutm_source=novli&utm_medium=novli&utm_campaign=fuelphp-cheatsheet Русская документация - Fuelphp-framework.ru Сообщество в ВКонтакте - vk.com/fuelphp Теги: #framework #Fuel #fuelphp #php 5.3 framework #framework #api youtube #api #php #OOP

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.