Spec-Zone.ru › Phalcon 3

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

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

Если вы предпочитаете использовать веб-версию вместо консоли, эта статья блога предоставляет больше информации.

Загрузка

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

Установка

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

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

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

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

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

../_images/tools-2.png

Вы можете добавить параметр –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

Доступ к проекту через веб-сервер отобразит:

../_images/tools-6.png

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

Команда «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:

../_images/tools-10.png

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

../_images/tools-11.png

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

../_images/tools-12.png

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

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

Spec-Zone.ru

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