Инструменты разработчика Phalcon
Эти инструменты представляют собой набор полезных скриптов для генерации шаблонов кода. Основные компоненты вашего приложения могут быть сгенерированы с помощью простой команды, что позволит вам легко разрабатывать приложения с использованием Phalcon.
Важно: Для использования инструментов разработчика требуется версия Phalcon Framework 0.5.0 или выше. Сильно рекомендуется использовать PHP 5.3.6 или выше. Если вы предпочитаете использовать веб-версию вместо консоли, этот пост в блоге предоставляет дополнительную информацию.
Загрузка
Вы можете загрузить или клонировать кроссплатформенную сборку, содержащую инструменты разработчика, с Github.
Установка
Ниже приведены подробные инструкции по установке инструментов разработчика на различных платформах:
Получение доступных команд
Вы можете получить список доступных команд в инструментах Phalcon, набрав: phalcon commands
$ phalcon commands Phalcon DevTools (1.2.3) Available commands: commands (alias of: list, enumerate) controller (alias of: create-controller) model (alias of: create-model) all-models (alias of: create-all-models) project (alias of: create-project) scaffold migration webtools
Генерация шаблона проекта
Вы можете использовать инструменты Phalcon для генерации предварительно определенных шаблонов проектов для ваших приложений с использованием фреймворка Phalcon. По умолчанию генератор шаблонов проекта будет использовать mod_rewrite для Apache. Введите следующую команду в корневой директории вашего веб-сервера:
$ pwd /Applications/MAMP/htdocs $ phalcon create-project store
Вышеупомянутая рекомендуемая структура проекта была сгенерирована:
Вы можете добавить параметр –help, чтобы получить справку по использованию определенного скрипта:
Phalcon DevTools (1.2.3)
- Справка:
- Создает проект
- Использование:
- project [имя] [тип] [директория] [включить-веб-инструменты]
- Аргументы:
- help Показать это сообщение справки
- Пример
- phalcon project store simple
- Опции:
-
--name Имя нового проекта --enable-webtools Определяет, должны ли быть включены веб-инструменты [необязательно] --directory=s Базовая директория, в которой будет создан проект [необязательно] --type=s Тип приложения, которое будет сгенерировано (micro, simple, modules) --template-path Указать путь к шаблону [необязательно] --use-config-ini Использовать ini-файл в качестве файла конфигурации [необязательно] --trace Показывает трассировку фреймворка в случае исключения. [необязательно] --help Показать это сообщение справки
Доступ к проекту с веб-сервера покажет вам:
Генерация контроллеров
Команда “create-controller” генерирует шаблоны структур контроллеров. Важно вызывать эту команду внутри директории, в которой уже существует проект Phalcon.
$ phalcon create-controller --name test
Следующий код генерируется скриптом:
class TestController extends Phalcon\Mvc\Controller
{
public function indexAction()
{
}
}
Настройка параметров базы данных
При генерации проекта с помощью инструментов разработчика. Файл конфигурации можно найти в app/config/config.ini. Для генерации моделей или каркаса вам потребуется изменить параметры подключения к вашей базе данных.
Измените раздел базы данных в вашем файле config.ini:
[database] adapter = Mysql host = "127.0.0.1" username = "root" password = "secret" dbname = "store_db" [phalcon] controllersDir = "../app/controllers/" modelsDir = "../app/models/" viewsDir = "../app/views/" baseUri = "/store/"
Генерация моделей
Существует несколько способов создания моделей. Вы можете создать все модели из стандартного подключения к базе данных или выборочно. Модели могут иметь публичные атрибуты для представления полей или можно использовать сеттеры/геттеры.
- Опции:
-
--name=s Имя таблицы --schema=s Имя схемы. [необязательно] --namespace=s Пространство имен модели [необязательно] --get-set Атрибуты будут защищенными, и будут иметь сеттеры/геттеры. [необязательно] --extends=s Модель расширяет указанное имя класса [необязательно] --doc Помогает улучшить автодополнение кода в IDE [необязательно] --directory=s Базовая директория, в которой будет создан проект [необязательно] --force Перезаписать модель. [необязательно] --trace Показывает трассировку фреймворка в случае исключения. [необязательно] --mapcolumn Получить код для сопоставления столбцов. [необязательно]
Самый простой способ генерации модели:
$ phalcon model products
$ phalcon model --name tablename
Все поля таблицы объявлены публичными для прямого доступа.
class Products extends \Phalcon\Mvc\Model
{
/**
* @var integer
*/
public $id;
/**
* @var integer
*/
public $types_id;
/**
* @var string
*/
public $name;
/**
* @var string
*/
public $price;
/**
* @var integer
*/
public $quantity;
/**
* @var string
*/
public $status;
}
Добавив –get-set, вы можете сгенерировать поля с защищенными переменными и публичными методами сеттера/геттера. Эти методы могут помочь в реализации бизнес-логики внутри методов сеттера/геттера.
class Products extends \Phalcon\Mvc\Model
{
/**
* @var integer
*/
protected $id;
/**
* @var integer
*/
protected $types_id;
/**
* @var string
*/
protected $name;
/**
* @var string
*/
protected $price;
/**
* @var integer
*/
protected $quantity;
/**
* @var string
*/
protected $status;
/**
* Method to set the value of field id
* @param integer $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* Method to set the value of field types_id
* @param integer $types_id
*/
public function setTypesId($types_id)
{
$this->types_id = $types_id;
}
...
/**
* Returns the value of field status
* @return string
*/
public function getStatus()
{
return $this->status;
}
}
Приятная особенность генератора моделей заключается в том, что он сохраняет изменения, внесенные разработчиком между генерациями кода. Это позволяет добавлять или удалять поля и свойства, не беспокоясь о потере внесенных изменений в саму модель. Следующий видеоролик показывает, как это работает:
Сгенерировать CRUD
Каркас — это быстрый способ генерации основных частей приложения. Если вы хотите создать модели, представления и контроллеры для нового ресурса в одной операции, каркас — это подходящий инструмент.
После генерации кода его необходимо будет настроить в соответствии с вашими потребностями. Многие разработчики вообще избегают использования каркаса, предпочитая писать весь или большую часть исходного кода с нуля. Сгенерированный код может служить руководством для лучшего понимания работы фреймворка или разработки прототипов. На скриншоте ниже показан каркас, основанный на таблице «продукты»:
$ phalcon scaffold --table-name test
Генератор каркаса создаст несколько файлов в вашем приложении, а также некоторые папки. Вот краткое описание того, что будет сгенерировано:
| Файл | Назначение |
|---|---|
| app/controllers/ProductsController.php | Контроллер Products |
| app/models/Products.php | Модель Products |
| app/views/layout/products.phtml | Макет контроллера для Products |
| app/views/products/new.phtml | Представление для действия «new» |
| app/views/products/edit.phtml | Представление для действия «edit» |
| app/views/products/search.phtml | Представление для действия «search» |
При просмотре недавно сгенерированного контроллера вы увидите форму поиска и ссылку для создания нового продукта:
Страница «создать» позволяет создавать продукты, применяя валидацию к модели Products. Phalcon автоматически проверит поля, не допускающие пустых значений, выдав предупреждения, если какие-либо из них являются обязательными.
После выполнения поиска доступен компонент постраничного отображения для показа результатов на страницах. Используйте ссылки «Изменить» или «Удалить» перед каждым результатом для выполнения этих действий.
Веб-интерфейс для инструментов
Кроме того, если вы предпочитаете, можно использовать инструменты Phalcon Developer Tools через веб-интерфейс. Ознакомьтесь со следующим видеороликом, чтобы узнать, как это работает:
Интеграция инструментов с IDE PhpStorm
В видео ниже показано, как интегрировать инструменты разработчика с IDE PhpStorm. Шаги настройки легко адаптируются к другим IDE для PHP.
Заключение
Инструменты разработчика Phalcon предоставляют простой способ генерации кода для вашего приложения, сокращая время разработки и потенциальные ошибки программирования.
© 2011–2016 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/2.0.0/reference/tools.html