Создание собственного компонента Joomla 3.x

Вот я и решил посмотреть, что нового в Joomla! МВК приносит. Поскольку я учусь на практике, я начал создавать собственный Joomla! 3.x, я имею в виду без использования устаревших классов в реальном проекте, а не просто привет, мир.

В качестве учебного материала я использовал учебник Lendr, а также немного изучил новую версию Joomla! код jissues.

Одной из вещей, которых мне не хватает в устаревших классах, является JModelList. Поэтому я в основном указал методы копирования и вставки оттуда в свой компонент.

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

Итак, мой вопрос: есть ли хорошие примеры использования нового MVC из Joomla?


person Valentin Despa    schedule 24.03.2013    source источник
comment
вы смотрели на новый установщик в 3.1? он должен быть написан с использованием новой архитектуры mvc. немного оффтоп: почему вы не отметили это также joomla? я думаю, что многие вопросы joomla были бы более заметны, если бы у них был этот тег. и что вы думаете, если мы создадим синоним тега между joomla и joomla2.5 joomla3.1 и т. д.?   -  person Marko D    schedule 24.03.2013
comment
Спасибо, что напомнили, проверю (совсем забыл!). OFFTOPIC: Добавлена ​​Joomla! тег. Спасибо, что подняли этот вопрос, у меня вчера была похожая мысль. Я бы создал синоним между Joomla1.6, 1.7, 2.5) и сериями 3.1, 3.2, 3.5. Но я открыт для обсуждения этого, может быть, на мете?   -  person Valentin Despa    schedule 24.03.2013
comment
Я пишу вопрос там сейчас   -  person Marko D    schedule 24.03.2013
comment
вот он: тег синонимов для joomla   -  person Marko D    schedule 24.03.2013


Ответы (2)


Насколько я знаю, JIssues — единственный публичный пример использования нового MVC в Joomla CMS.

Хотя я нахожу новый минимализм MVC очень удобным для приложений Platform/Framework, я не хочу использовать его для нового компонента по причинам, которые вы написали - в нем отсутствуют некоторые элементы, специфичные для CMS.

Я думаю, что мы (сообщество) должны разработать эти классы (доступные позже в /libraries/cms/) с учетом новшеств в Joomla (MVC, Router, ApplicationWeb), а также в PHP 5.

JModelTracker может быть полезно просмотреть

Изменить:

Существует приложение, созданное на платформе Joomla: Cobalt CRM.

Хотя это не компонент CMS, некоторые шаблоны проектирования аналогичны тому, как новый MVC будет использоваться в CMS: существует базовая модель CobaltModelDefault, которые расширяют другие модели (например, CobaltModelDocuments).

Для меня имеет смысл подготовить некоторые классы для общего использования в CMS (которые, вероятно, будут очень похожи на устаревшие), но с учетом методов RAD, таких как Framework-on-Framework, пространство имен и так далее.

person piotr_cz    schedule 24.03.2013
comment
Спасибо за ваш вклад. Я внимательно изучил JModelTracker, большая часть кода идентична устаревшим классам (из того, что я проанализировал до сих пор). - person Valentin Despa; 24.03.2013
comment
Еще одна вещь, на которую стоит обратить внимание, это использование таблиц содержимого в Компонент тегов - person piotr_cz; 25.03.2013

Новые классы MVC действительно не подходят для готового использования с CMS. Их можно использовать, если вы хотите поддерживать дополнительный код для этого.

Установщик версии 3.1 использует новый MVC, в противном случае лучшими известными мне примерами использования более нового MVC являются приложение отслеживания (единственное широкомасштабное веб-приложение, которое я видел, публично использующее его) и платформа Тяговый тестер.

Дэвид Херли запускает серию в Joomla! Журнал (последняя статья) об использовании нового MVC, но это еще не все.

person Michael    schedule 24.03.2013