Инструменты разработчика Phalcon
Эти инструменты представляют собой набор полезных скриптов для генерации скелетного кода. Основные компоненты вашего приложения могут быть сгенерированы с помощью простой команды, что позволяет легко разрабатывать приложения с использованием Phalcon.
Если вы предпочитаете использовать веб-версию вместо консоли, эта статья блога предоставляет больше информации.
Загрузка
Вы можете загрузить или клонировать кроссплатформенное пакетное приложение с инструментами разработчика с Github.
Установка
Здесь приведены подробные инструкции по установке инструментов разработчика на различных платформах:
Получение доступных команд
Вы можете получить список доступных команд в инструментах Phalcon, набрав: phalcon commands
$ phalcon commands Phalcon DevTools (3.0.0) Available commands: commands (alias of: list, enumerate) controller (alias of: create-controller) module (alias of: create-module) model (alias of: create-model) all-models (alias of: create-all-models) project (alias of: create-project) scaffold (alias of: create-scaffold) migration (alias of: create-migration) webtools (alias of: create-webtools)
Генерация скелета проекта
Вы можете использовать инструменты Phalcon для генерации предопределённых скелетов проектов для ваших приложений с фреймворком Phalcon. По умолчанию генератор скелета проекта будет использовать mod_rewrite для Apache. Введите следующую команду в корневой директории вашего веб-сервера:
$ pwd /Applications/MAMP/htdocs $ phalcon create-project store
Была сгенерирована рекомендуемая структура проекта:
Вы можете добавить параметр –help, чтобы получить справку по использованию определенного скрипта:
$ phalcon project --help Phalcon DevTools (3.0.0) Help: Creates a project Usage: project [name] [type] [directory] [enable-webtools] Arguments: help Shows this help text Example phalcon project store simple Options: --name Name of the new project --enable-webtools Determines if webtools should be enabled [optional] --directory=s Base path on which project will be created [optional] --type=s Type of the application to be generated (cli, micro, simple, modules) --template-path=s Specify a template path [optional] --use-config-ini Use a ini file as configuration file [optional] --trace Shows the trace of the framework in case of exception. [optional] --help Shows this help
Доступ к проекту через веб-сервер отобразит:
Генерация контроллеров
Команда «create-controller» генерирует скелетные структуры контроллеров. Важно ввести эту команду в директории, в которой уже существует проект Phalcon.
$ phalcon create-controller --name test
Следующий код генерируется скриптом:
use Phalcon\Mvc\Controller;
class TestController extends 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/"
Генерация моделей
Существует несколько способов создания моделей. Вы можете создать все модели из подключения к базе данных по умолчанию или некоторые выборочно. Модели могут иметь открытые атрибуты для представления полей или можно использовать методы set/get.
- Параметры:
-
--name=s Имя таблицы --schema=s Имя схемы. [необязательно] --namespace=s Пространство имён модели [необязательно] --get-set Атрибуты будут защищёнными и будут иметь методы set/get. [необязательно] --extends=s Модель расширяет указанный класс [необязательно] --excludefields=l Исключает поля, определённые через запятую [необязательно] --doc Помогает улучшить автодополнение кода в IDE [необязательно] --directory=s Базовый путь, в котором будет создан проект [необязательно] --force Перезаписать модель. [необязательно] --trace Отображает трассировку фреймворка в случае возникновения исключения. [необязательно] --mapcolumn Получить код для сопоставления столбцов. [необязательно] --abstract Абстрактная модель [необязательно]
Самый простой способ генерации модели:
$ phalcon model products
$ phalcon model --name tablename
Все поля таблицы объявляются открытыми для прямого доступа.
use Phalcon\Mvc\Model;
class Products extends Model
{
/**
* @var integer
*/
public $id;
/**
* @var integer
*/
public $typesId;
/**
* @var string
*/
public $name;
/**
* @var string
*/
public $price;
/**
* @var integer
*/
public $quantity;
/**
* @var string
*/
public $status;
}
Добавив –get-set, вы можете сгенерировать поля с защищёнными переменными и открытыми методами set/get. Эти методы могут помочь в реализации бизнес-логики в методах set/get.
use Phalcon\Mvc\Model;
class Products extends Model
{
/**
* @var integer
*/
protected $id;
/**
* @var integer
*/
protected $typesId;
/**
* @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 typesId
*
* @param integer $typesId
*/
public function setTypesId($typesId)
{
$this->typesId = $typesId;
}
// ...
/**
* Returns the value of field status
*
* @return string
*/
public function getStatus()
{
return $this->status;
}
}
Приятная функция генератора моделей — сохранение изменений, внесённых разработчиком между генерациями кода. Это позволяет добавлять или удалять поля и свойства без опасений потери изменений, внесённых в модель. Следующий экранный снимок показывает, как это работает:
Сгенерировать CRUD
Каркас — быстрый способ генерации основных компонентов приложения. Если вы хотите создать модели, представления и контроллеры для нового ресурса в одной операции, каркас — нужный инструмент.
После генерации кода его необходимо будет настроить в соответствии с вашими потребностями. Многие разработчики полностью избегают использования каркаса, предпочитая писать весь или большую часть исходного кода с нуля. Сгенерированный код может служить руководством для лучшего понимания работы фреймворка или разработки прототипов. Ниже приведён код каркаса, основанный на таблице «products»:
$ phalcon scaffold --table-name products
Генератор каркаса создаст несколько файлов в вашем приложении, а также некоторые папки. Вот краткий обзор того, что будет сгенерировано:
| Файл | Цель |
|---|---|
| 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» |
При просмотре недавно сгенерированного контроллера вы увидите форму поиска и ссылку на создание новой записи Product:
Страница «создание» позволяет создавать продукты, применяя проверки на модели Products. Phalcon автоматически будет проверять обязательные поля, вызывая предупреждения, если какое-либо из них необходимо.
После выполнения поиска доступен компонент постраничной навигации для отображения постраничных результатов. Используйте ссылки «Редактировать» или «Удалить» перед каждым результатом, чтобы выполнить такие действия.
Веб-интерфейс инструментов
Также, если вы предпочитаете, вы можете использовать инструменты Phalcon Developer Tools через веб-интерфейс. Ознакомьтесь со следующим экранным снимком, чтобы понять, как это работает:
Интеграция инструментов с IDE PhpStorm
На скриншоте ниже показано, как интегрировать инструменты разработчика с IDE PhpStorm. Шаги конфигурации легко адаптируются к другим IDE для PHP.
Заключение
Инструменты Phalcon Developer Tools предоставляют простой способ генерации кода для вашего приложения, сокращая время разработки и потенциальные ошибки программирования.
© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/reference/tools.html