Spec-Zone.ru › Phalcon 2

Инструменты разработчика Phalcon

Эти инструменты представляют собой набор полезных скриптов для генерации шаблонов кода. Основные компоненты вашего приложения могут быть сгенерированы с помощью простой команды, что позволит вам легко разрабатывать приложения с использованием Phalcon.

Важно: Для использования инструментов разработчика требуется версия Phalcon Framework 0.5.0 или выше. Сильно рекомендуется использовать PHP 5.3.6 или выше. Если вы предпочитаете использовать веб-версию вместо консоли, этот пост в блоге предоставляет дополнительную информацию.

Загрузка

Вы можете загрузить или клонировать кроссплатформенную сборку, содержащую инструменты разработчика, с Github.

Установка

Ниже приведены подробные инструкции по установке инструментов разработчика на различных платформах:

  • Инструменты разработчика Phalcon в Windows
  • Инструменты разработчика Phalcon в Mac OS X
  • Инструменты разработчика Phalcon в Linux

Получение доступных команд

Вы можете получить список доступных команд в инструментах 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

Вышеупомянутая рекомендуемая структура проекта была сгенерирована:

../_images/tools-2.png

Вы можете добавить параметр –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 Показать это сообщение справки

Доступ к проекту с веб-сервера покажет вам:

../_images/tools-6.png

Генерация контроллеров

Команда “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»

При просмотре недавно сгенерированного контроллера вы увидите форму поиска и ссылку для создания нового продукта:

../_images/tools-10.png

Страница «создать» позволяет создавать продукты, применяя валидацию к модели Products. Phalcon автоматически проверит поля, не допускающие пустых значений, выдав предупреждения, если какие-либо из них являются обязательными.

../_images/tools-11.png

После выполнения поиска доступен компонент постраничного отображения для показа результатов на страницах. Используйте ссылки «Изменить» или «Удалить» перед каждым результатом для выполнения этих действий.

../_images/tools-12.png

Веб-интерфейс для инструментов

Кроме того, если вы предпочитаете, можно использовать инструменты 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API