Joomla fof 4 x

Содержание
  1. akeeba/fof
  2. Launching GitHub Desktop
  3. Launching GitHub Desktop
  4. Launching Xcode
  5. Launching Visual Studio Code
  6. Latest commit
  7. Git stats
  8. Files
  9. README.md
  10. About
  11. Joomla fof 4 x
  12. Введение
  13. Что такое FOF
  14. Свободное ПО означает сотрудничество
  15. Предисловие к настоящей документации
  16. Начало работы с FOF
  17. Установка FOF
  18. Использование FOF в вашем расширении
  19. Установка FOF вместе с вашим компонентом
  20. Примеры приложений
  21. Основные возможности
  22. Соглашения вместо конфигурации (Convention over configuration), Rails-стиль
  23. HMVC уже сегодня, без необходимости переучиваться разработке компонентов
  24. Простое повторное использование файлов шаблонов без вызова include().
  25. Автоматическая загрузка языковых файлов
  26. Переопределение медиа файлов (работает также как и переопределение файлов шаблона)
  27. Автоматическая генерация JSON и CSV без кодирования (также полезно для веб-сервисов)
  28. Представления шаблонов без кода
  29. Разграничение прав, конфигурация приложения и последовательность вызовов в приложении

akeeba/fof

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Framework on Framework

FOF (Framework on Framework) is a rapid application development framework for Joomla!. It’s designed to abstract changes between different Joomla versions and provide a better, faster, fluent coding interface based on the same MVC concepts that you learned with Joomla.

FOF 3.6 and later requires Joomla 3.9 or later and PHP 7.1 or later. It will not work on older Joomla and PHP versions.

FOF 2.x, 3.x and Joomla 3

Joomla 3 includes a very, VERY old version of FOF we have stopped developing in 2015 and declared End of Life in 2016. Please don’t use that! That’s what FOF looked liked in the early 2010’s. This repository has a far better, much newer version. And yes; both versions can run side by side.

This warrants an explanation of the extensions you see in the Extensions, Manage page with FOF in their name:

  • FOF (type: Library, version 2.4.3). This is the ancient version of FOF included in Joomla. It’s installed in libraries/fof . It cannot and MUST NOT be removed. If you delete it your site will break – this is still used by some core Joomla components, including Two Factor Authentication.
  • F0F (type: Library). Note that this is F-zero-F. That’s an old version of FOF 2.x, renamed so it can run next to Joomla’s even more outdated version. It was a rather complicated affair. It’s installed in libraries/f0f (f-zero-f). It should no longer be necessary but please do check first if you have any very old extension still using it.
  • file_fof30 (type: File). This is the current version of FOF 3. It’s installed in libraries/fof30 . Do NOT remove it manually. It will be uninstalled automatically when the last extension using it is removed.
  • FOF (type: Library, version 3.x.y). This was the old package type of FOF 3. We switched to a file package in 2018 to address Joomla bricking your sites if it failed to fully update FOF. While we try to remove the leftover entry from Joomla’s Extensions, Manage page it’s not always possible. If you see this entry please DO NOT try to remove it, you will break your site.
  • User — FOF Token Management (type: Plugin). This will be shipped with our extensions in 2020 to manage token authentication for JSON API calls in Joomla 3. Please do not remove if you’re using any Akeeba-branded extension. Also, cool fact: this code has already been contributed to Joomla 4 for its brand new API application.
Читайте также:  Windows 10 rsat установка ошибка 0x8024001d

FOF and Joomla 4

Joomla 4, thankfully, no longer includes the ancient version of FOF Joomla 3 shipped with. You can use the latest version of FOF with Joomla 4.

Important! We only work towards full compatibility with stable versions of Joomla. Using FOF with pre-release versions of Joomla (alpha, beta, RC) may result in issues. If you have identified the issue to be coming from FOF and not your extensions feel free to file a Pull Request or an issue in this repository. Please be as specific and detailed as possible.

Using FOF for your extensions

If you want to use FOF to build your extensions and include it with them please read our Wiki for more information.

Mind the deprecated / removed stuff!

While our original goal was to follow semantic versioning, a combination of reasons led to us deciding to remove features in a backwards incompatible manner without bumping the major version of FOF.

Backwards incompatible changes and major new features are detailed in the [ UPGRADE NOTES.md ](UPGRADE NOTES.md) in FOF’s repository.

The following features present in earlier versions of FOF 3 are scheduled for removal:

  • FOF30\Utils\FEFHelper\Html . Use FEFHelper.browse through Joomla’s HtmlHelper class instead.
  • FOF30\Utils\StringHelper . Use the replacements advised in the docblocks.
  • FOF30\Utils\InstallScript . Use FOF30\Utils\InstallScript\Component instead.

About

Rapid Application Development framework for Joomla!™ 3 and 4

Источник

Joomla fof 4 x

Оригинал: Copyright © 2013 Akeeba Ltd
Перевод: Copyright © 2014 Фёдоров Александр

Содержание данной документации, являюется объектом авторского права и доступно согласно лицензии Joomla! Electronic Documentation License (JEDL), если не указано иное. Вы можете обратиться к разделу частые вопросы по JEDL, чтобы уточнить как вы можете использовать данный материал. Если у вас есть какие-либо вопросы, касающиеся лицензирования данного материала, или вы хотите сообщить о возможном нарушении условий лицензии на материалы данного сайта, пожалуйста, напишите по электронной почте: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. .

Введение

Что такое FOF

FOF (Framework on Framework) — фреймворк быстрой разработки приложений для Joomla!. В отличие от других подобных решений это не автономный фреймворк, а расширение для Joomla! Он обладает собственными MVC-классами, сохраняя максимальную совместимость с существующим Joomla! API в парадигме MVC. Это означает, что вам не придется переучиваться писать расширения для Joomla!. Вместо этого, вы можете начать продуктивно работать с первого же дня использования этого фреймворка. Мы планируем поддерживать LTS версии Joomla! и не «ломать» обратную совместимость без четкого описания устаревшего функционала и путей миграции.

FOF совместим с технологиями баз данных, используемых в Joomla!: MySQL, SQL Server (включая Windows Azure SQL), PostgreSQL. В большинстве случаев вы можете разработать компонент для одной СУБД и запустить его на другой СУБД с минимальными изменениями (или вообще без них).

В настоящее время FOF используется как в бесплатных, так и в коммерческих компонентах Joomla! все большим числом разработчиков.

Свободное ПО означает сотрудничество

Основное преимущество FOSS (Free and Open Source Software) — это сотрудничество между разработчиками. FOF не является исключением, он существует благодаря разработчикам и для разработчиков Joomla!. Он распространяется бесплатно и обладает всеми возможностями и преимуществами, которые даёт GPL.

Если вы хотите обсудить фреймворк, можете принять участие в списке рассылки Google Groups.

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

Если у вас есть патч, не стесняйтесь создать форк проекта на GitHub и отправить pull request. Не забывайте прикладывать описание желаемого функционала, чтобы я мог быстрее проверить и одобрить ваш код.

Читайте также:  Canon mf3010 картридж 725 starter

Предисловие к настоящей документации

Вместо того, чтобы пытаться полностью заменить собственный API Joomla!, FOF основывается на нем и расширяет его. В итоге это позволяет быстро и безболезненно разрабатывать расширения для Joomla! CMS.

Чтобы экономить время благодаря возможностям фреймворка всё, что нужно сделать — это понять, как он организован, следовать соглашениям об именах и разобраться как взаимодействуют различные части фреймворка. Эта документация — как раз попытка дать вам эти знания.

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

На второй вопрос ответить сложнее. Должны ли мы создать сухое описание существующих функций или создать документацию в виде рассказа, который повествует о наших знаниях. Мы все разработчики и можем прочитать код и комментарии. Это значит, что первый вариант излишний. Поэтому мы выбрали второй вариант.

Эта документации не пытается быть полным справочником, эдакой библией разработчика и единственным источником информации по FOF. Наоборот, эта документация призвана стать началом вашего путешествия, быть как бы путеводителем. Самое главное — это само путешествие, разработка собственных расширений, основанных на FOF. В процессе создания вашего расширения вы столкнётесь с множеством вопросов. На большинство из них вы найдёте ответы самостоятельно, на некоторые есть ответы в Wiki, некоторые вопросы вы должны будете задать в списке рассылки. В итоге вы приобретаете новые знания. Если вы узнали и поняли что-то ценное, не забудьте поделиться этим и добавить описание в Wiki. Так мы все станем чуточку богаче и наше путешествие в разработку будет ещё увлекательнее.

Начало работы с FOF

Установка FOF

Можно скачать библиотеку FOF для Joomla! из нашего архива и установить её как и любое другое расширение для Joomla! версии 2.x и выше.

Если есть желание использовать самую последнюю разработческую версию, то можно клонировать доступный только для чтения Git — репозиторий. Проверьте, чтобы скопированная библиотека (напрямую или через символьную ссылку) располагалась в директории сайта libraries/fof . Кроме этого, мы публикуем dev-релизы в нашем специальном репозитории. Это пакеты для установки, но обратите внимание, что они могут быть устаревшими в сравнении с Git — репозиторием, т.к. создаются и публикуются не автоматически.

Использование FOF в вашем расширении

Рекомендуемый метод использования библиотеки FOF в вашем компоненте, модуле или плагине — это использовать нижеприведённый код сразу после объявления defined(‘_JEXEC’) or die() (Joomla! версии 2.x и более поздних):

Или можно уместить всё это в одну строку:

Установка FOF вместе с вашим компонентом

К сожалению, Joomla! на данный момент не позволяет проверять версию установленной библиотеки. Поэтому обязанность проверить версию библиотеки на сайте перед установкой расширения ложится на плечи разработчика. Далее описан пример реализации подобной проверки в компоненте для Joomla! 2.x / 3.x.

Включите директорию под названием fof в ваш инсталляционный файл. Директория должна содержать файлы установочного пакета FOF. Далее в скрипте установки вашего компонента script.mycomponent.php добавьте следующий метод:

Этот метод надо вызвать из метода postflight() . Например:

Из-за ошибки в Joomla! 1.6 и далее, манифест компонента должен начинаться с буквы, стоящей в алфавите раньше L , иначе Joomla! решит, что lib_fof.xml это XML манифест вашего расширения и установит FOF вместо самого расширения. Мы настоятельно рекомендуем придерживаться соглашений о наименовании компонента в стиле com_yourComponentName.xml , например com_todo.xml . Патч на исправление этой ошибки есть в трекере Joomla!’s, и надеемся, что со временем эту ошибку исправят.

Начиная с FOF 2.4.0 вы можете создать установочный скрипт расширяющий F0FUtilsInstallscript , а затем поместить последнюю стабильную версию FOF в корневую папку компонента в подпапку fof . F0FUtilsInstallscript установить FOF автоматически. В качестве примера можете посмотреть установочный скрипт компонента Akeeba Backup Core.

Читайте также:  Задания исполнителя можно выполнять даже когда закончится подписка орфографические ошибки

Примеры приложений

FOF поставляется с двумя примерами приложений: To-Do и Contact Us. Они были разработаны на разных этапах развития фреймворка, находятся в процессе постоянных улучшений и, конечно, демонстрируют только часть возможностей FOF.

Ещё один хороший способ изучить приёмы FOF — это изучение существующих приложений, разработанных с использованием FOF. Только помните, что мы все живые люди и иногда наш код далёк от идеального 😉

Основные возможности

Соглашения вместо конфигурации (Convention over configuration), Rails-стиль

Вместо того, чтобы реализовывать каждый кусочек компонента в коде, достаточно придерживаться соглашений при наименовании. Например, если компонент называется com_example , то вид foobar будет читать данные из таблицы #__example_foobars , в которой ключевое поле называется example_foobar_id . Большинство рутинных операций с контроллерами, моделями, таблицами и представлениями тоже уже готово, что уменьшает необходимый объём кода.

HMVC уже сегодня, без необходимости переучиваться разработке компонентов

Ведётся много разговоров о необходимости перехода в разработке Joomla! от парадигмы MVC к HMVC. А что, если уже сейчас можно было бы использовать существующие MVC-классы в HMVC-парадигме? Это возможно с FOF! На самом деле было возможно уже с сентября 2011. Для сомневающихся сразу отметим: да, это реальный HMVC, что доказывается существованием класса F0FDispatcher .

Простое повторное использование файлов шаблонов без вызова include().

Часто возникает желание использовать файлы шаблона в различных представлениях. «Традиционный» путь — использовать include() или require(). Это правда означает, что перестанут работать переопределения шаблонов. Теперь нет! Используя метод loadAnyTemplate() класса F0FView можно загружать любой шаблон из пользовательской или административной части любого компонента, конечно же с соблюдением всех переопределений.

Автоматическая загрузка языковых файлов

Надоело загружать языковые файлы вручную? Получаете множество не переведённых строк, если переводчики не успели обработать новые функции приложения? Это легко изменить. FOF автоматически обработает загрузку языковых файлов.

Переопределение медиа файлов (работает также как и переопределение файлов шаблона)

Вы можете переопределить вид шаблона Joomla!, но что насчёт переопределения CSS или Javascript файлов? Обычно это требует «хака ядра», т.е. модификации PHP файлов представления, переводя их в разряд неподдерживаемых, необновляемых и потенциально небезопасных. Хватит! Используя F0FTemplateUtils::addCSS и F0FTemplateUtils::addJS можно загружать собственные CSS и JS-файлы напрямую из файла представления шаблона. Хочется ещё? Разработчикам шаблонов можно разрешить создавать свои переопределения для этих файлов. Достаточно создать папку templates/your_template/media/com_example , чтобы переопределить файлы, обычно расположенные в media/com_example . Всё просто!

Автоматическая генерация JSON и CSV без кодирования (также полезно для веб-сервисов)

Задумались об удалённом API для компонента? FOF делает данные любого вида доступными в JSON-формате, открывая мир новых возможностей для компонентов Joomla! (использование данных в мобильных приложениях, в плитках Metro-стиля Windows 8, расширениях браузера, смешанных веб-приложениях и т.д.).

Автоматическая генерация CSV работает по такому же принципу, только выходные данные идут в формате CSV, подходящем для импорта данных в электронные таблицы и последующего анализа. Заметили, что мы имеем практически готовую реализацию RESTful веб-сервисов?

Представления шаблонов без кода

Не надоело ли вам писать код для каждого представления шаблона (на PHP и HTML) под разные версии Joomla!? Не надоело ли объяснять не разработчикам как не сломать компонент при каждом обновлении? Мы чувствует вашу боль. Именно поэтому FOF поддерживает использование XML в представлениях шаблонов, автоматически генерируя преобразуя их в HTML. Не только формы, всё — списки и единичные записи. Более того, можно выбирать что использовать: традиционные PHP/HTML или XML или их комбинацию в одном и том же представлении.

Разграничение прав, конфигурация приложения и последовательность вызовов в приложении

Начиная с FOF 2.1 последовательность вызовов в приложении, разграничение прав доступа и общую конфигурацию можно определять используя понятные XML-файлы. Никогда раньше не было так просто получить расширение для Joomla! с минимальным количеством PHP-кода.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector