Разработка расширений Joomla! 3.0: Подготовка
Важно убедиться, что вы правильно подготовитесь к разработке и есть несколько аспектов написания компонентов Joomla 3.0, которые должны быть спланированы с первых дней. Это первая из серии статей о разработке расширений, без которой не понять процесса планирования структуры работы над расширениями. Вот те этапы, которые мы считаем наиболее эффективными в начале подготовки к успешному процессу разработки расширений.
Шаг 0: Сделайте кофе
В начале любой работы не помешает иметь под рукой чашечку чего либо, что будет держать тебя в тонусе и фокусировать на работе. Организовав рутину вокруг, мы готовим наше тело и мозг к работе. Начиная написание кода, важно чувствовать себя проснувшимся и бодрым. Как только вы с вашим напитком примете исходную позицию, можно начать.
Шаг 1: Жёлтый блокнот и любая ручка
Практически все наши проекты берут начало из жёлтых блокнотов. Вам может понравиться бумага другого цвета, это ваше дело. Руководствуясь рядом причин, я рекомендую жёлтый, но это необязательно. Так же я рекомендую ручку, а не карандаш. Карандаши ломаются, идеи утекают, линии стираются, а смысл тут не в том, чтобы нарисовать идеальный план, а скорее устроить мозговой штурм и нацарапать идеи на бумаге. Пользуясь ручкой, вы заставляете себя думать, а использование карандаша само по себе предполагает возможность стереть и переписать написанное.
Шаг 2: Определите ваши потребности, целевую аудиторию и проблемы, требующие решения
Итак, вы сидите с горячим напитком, блокнотом и ручкой и готовы приступить к следующему шагу. Начните записывать свои идеи. Начнём с проблемы, которую вы хотите решить, почему вы пишете это расширения, каковы основные идеи, на которых будете акцентировать внимание, и что вообще будет делать ваше расширение. Так же на этом этапе неплохо бы реализовать небольшое исследование. Существует ли ваш компонент на данный момент? Есть ли кто-то, кто выпускал похожий продукт и может составить конкуренцию? Насколько велика целевая аудитория компонента, который вы хотите написать? Эти аспекты важно учесть, т.к. есть некоторые меры предосторожности, на которые мы хотели бы обратить ваше внимание.
- Во-первых, не надо писать “Властелина колец” (один компонент, чтобы всем управлять, другой, чтобы всё объединить...), определите основную проблему, которую хотите решить и сосредоточьтесь на ней. Так вы упростите себе и жизнь, и маркетинг.
- Во-вторых, убедитесь в существовании целевой аудитории. Не думайте, что если компонент нужен вам, он внезапно понадобится всем остальным. Будьте реалистичны в прогнозах и это прибавит вам уверенности.
Шаг 3: Опишите процесс разработки расширения / приложения
Как только вы набросали идеи, определили целевую аудиторию, проблемы, которые собираетесь решить, следующим шагом будем описание вашего плана по разработке. Желательно это делать вместе с прошлым шагом. Выпишите контроллеры, инструменты и модели, которые вам понадобятся. Вероятно сейчас самое время отступить и обсудить первый важный этап разработки компонента Joomla! 3.0, систему модель-вид-контроллер (МВК).
Joomla реализует довольно стандартную структуру МВК, но, как бы то ни было, она отличается от MVC framework, используемой другими платформами. Joomla рассматривает каждую задачу как контроллер. Это означает, что вам понадобятся контроллеры названные “save”, “add”, “edit”, “delete” и т.д. Каждый контроллер отвечает только за одно задание. На первый взгляд может показаться, что у вас будет огромное количество файлов, но, в конечном счете, именно они обеспечат интуитивную работу компонента, а также смогут выполнять несколько команд одновременно.
Модели в Joomla выполняют фактические манипуляции с данными. Вот где пригодится вся логика и код. Модели в основном разрабатываются для отображения ключевых элементов и особенностей компонента. Внутри модели у вас будет список функций, относящихся к определённому объекту (листать, копировать, сохранять и т.д...).
В итоге у вас есть ваши файлы просмотра. Joomla! содержит стандартную методологию структуры создания таких файлов. На данный момент достаточно упомянуть, что они следуют определённой структуре в моделях с определёнными задачами к каждому объекту компонента.
Это должно обозначить краткое (может быть упрощённое) представление работы структуры МВК Joomla! и, надеюсь, достаточное, чтобы сделать возможным вами написание процесса разработки и перейти к следующему шагу.
Шаг 4: Организация структуры данных и табличной схемы
В то время, как существует множество способов начать разработку, следующий шаг мы нашли наиболее подходящим к последовательности. Как только мы записали все ключевые моменты и разработали план развития разработки, мы переходим к созданию структуры данных и табличной схемы.
На этом этапе мы будем брать каждую модель со всеми её функциями, и выписывать её в те поля, где собираемся использовать эту модель в таблице. При создании большинства компонентов вам понадобится таблица ассоциации моделей с данными. Есть несколько стандартных полей в таблице, которые используются при написании компонента. Как только мы выпишем таблицу структуры, мы так же будем следовать определённым правилам. Например, если мы планируем ассоциировать объект с определённой категорией, мы включим id категории в таблицу объекта, а также будем вписывать id пользователя, если хотим чтобы элементы ассоциировались с пользователем. Это поможет на позже, когда мы возьмём написанные вручную таблицы и начнём переносить их в SQL builder. Порой мы будем связывать таблицы линиями, чтобы легче понимать, как они взаимосвязаны.
Шаг 5: Установка метода для отслеживания обновлений (GitHub)
Этот шаг не является необходимым, но со временем не повредит настроить отслеживание обновлений версий платформы. По ряду причин мы предпочитаем GitHub. Если вы не знакомы с GitHub, можете использовать общественные (бесплатные) или частные (недорогие) репозитории, отслеживать изменения и осуществлять безопасное копирование всех ваших наработанных данных. Помимо всего это позволяет вам распределить написание кода между несколькими людьми, не беспокоясь о том, что они могут помешать работе друг друга. Необязательно использовать GitHub, это не единственный вариант, но критически необходимо найти место для безопасного хранения кода для возможного восстановления, обновления и защиты.
Шаг 6: Настройка локальной среды
Последним шагом в этой вводной статье мы рассмотрим настройку вашей локальной среды. Если обобщить, можно смело сказать что здесь есть множество способов написания кода и вместо того, чтобы описывать их, мы просто скажем, что это именно тот момент, когда следует подготовить среду. Мы локально установим Joomla! 3, скопируем репозиторий GitHub и переместим директории, если это будет необходимо. Мы используем Sublime Text 2 для управления кодом и инструменты Git вполне подходят для написания кода. Существует множество приложений, которые вы можете использовать и вместо того, чтобы унижать их, мы посоветуем вам найти наиболее удобный для вас и ваших методов написания кода.