Phalcon Developer Tool

Phalcon Developer Tool ini adalah kumpulan skrip yang berguna untuk generate kode inti, rangka utama aplikasi. Komponen inti dari aplikasi Anda dapat dihasilkan dengan perintah sederhana, sehingga dapat dengan mudah mengembangkan aplikasi menggunakan Phalcon.

Penting: Anda harus menggunakan minimal Phalcon Framework versi 0.5.0 untuk menggunakan Developer Tool. Juga disarankan untuk menggunakan PHP 5.3.6 atau lebih. Jika Anda memilih untuk menggunakan versi web, bukan konsol, posting blog  ini menawarkan informasi lebih lengkap.

Download 

Anda dapat men-download atau mengkloning paket lintas platform yang berisi Developer Tool dari Github .

Instalasi 

Berikut adalah petunjuk rinci tentang cara menginstal Developer Tool pada masing-masing platform :

Semua Perintah yg Tersedia 

Anda dapat mendapatkan daftar perintah yang tersedia dalam alat Phalcon dengan mengetikkan: 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

Generate Kerangka Proyek 

Anda dapat menggunakan Developer Tool Phalcon untuk menghasilkan kerangka proyek yg menggunakan framework Phalcon. Secara default generator kerangka proyek akan menggunakan mod_rewrite pada Apache. Ketik perintah berikut pada root dokumen server web Anda:

$ pwd

/Applications/MAMP/htdocs

$ phalcon create-project store

Struktur proyek akan dibuat sebagai berikut:

../_images/tools-2.png

Anda bisa menambahkan parameter –help untuk mendapatkan bantuan pada penggunaan script tertentu:

Phalcon DevTools (1.2.3)

Help:
Creates a project
Usage:
project [name] [type] [directory] [enable-webtools]
Arguments:
help Shows this help text
Example
phalcon project store simple
Pilihan:
–name Nama proyek baru
 –enable-webtools Menentukan apakah webtools harus diaktifkan [optional]
–directory=s Basis path yang proyek akan dibuat [optional]
–type=s Jenis aplikasi yang akan dihasilkan (mikro, sederhana, modul)
 –template-path Tentukan jalur template [optional]
 –use-config-ini Gunakan file ini sebagai file konfigurasi [optional]
–trace Menunjukkan jejak kerangka dalam kasus pengecualian.[Optional]
–help Menunjukkan bantuan ini

Mengakses proyek pada server web akan menampilkan:

../_images/tools-6.png

Generate Controller 

Perintah “create-controller” menghasilkan struktur dasar kontroler. Perintah ini ditulis di dalam direktori proyek Phalcon.

$ phalcon create-controller --name test

Kode berikut ini akan dibuatkan otomatis:

<?php

class TestController extends Phalcon\Mvc\Controller
{

    public function indexAction()
    {

    }

}

Mempersiapkan Pengaturan Database 

Ketika sebuah proyek yang dihasilkan dgn Developer Tool. File konfigurasi dapat ditemukan di app/config/config.ini Untuk menghasilkan model atau dasar keperluan lainnya, Anda akan perlu mengubah pengaturan yang digunakan untuk koneksi ke database.

Ubah bagian database dalam file 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/"

Generate Model 

Ada beberapa cara untuk mmebuat model. Anda dapat membuat semua model dari koneksi database default atau memilih salah satu. Model dapat ditambah atribut publik mewakili field/kolom data atau menggunakan setter / getter.

Pilihan:
–name=s Nama tabel
–schema=s Nama dari skema. [Optional]
–namespace=s Namespace model [optional]
–get-set Atribut field protected dan menggunakan setter / getter. [Optional]
–extends=s Model extend kelas tertentu [optional]
–doc Menambahkan Doc-Block. Menambah fitur autocomplete pada IDE
[optional]
–directory=s Base path dimana proyek akan dibuat [optional]
–force Rewrite model. [Optional]
–trace Menunjukkan jejak/trace framework djikalau terjadi kesalahan/eksepsi.[Optional]
–mapcolumn Menambahkan kode untuk memetakan field/kolom. [Optional]

Cara paling mudah untuk menghasilkan model adalah:

$ phalcon model products
$ phalcon model --name tablename

Semua field tabel dinyatakan sebagai public untuk akses langsung.

<?php

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;

}

Dengan menambahkan parameter –get-set Anda dapat menghasilkan field dengan variabel protected dan metode setter/getter publik. Metode tersebut dapat membantu menjalankan beberapa logika atau pengecekan dalam metode setter / getter. Misalnya value yg diberikan harus diubah menjadi integer.

<?php

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;
    }

}

Kelebihan dari model generator adalah mampu menyimpan perubahan yang dibuat oleh pengembang setelah generate kode. Hal ini memungkinkan penambahan atau penghapusan field dan properties, tanpa perlu khawatir kehilangan perubahan yang dibuat untuk model itu sendiri. Screencast berikut menunjukkan Anda cara kerjanya:

Scaffolding CRUD 

Scaffolding adalah cara cepat untuk menghasilkan beberapa bagian utama dari aplikasi. Jika Anda ingin membuat model, view, dan controller untuk resource baru dalam satu operasi,Scaffolding adalah alat yg tepat.

Setelah kode yang dihasilkan, tinggal disesuaikan untuk memenuhi kebutuhan Anda. Banyak pengembang menghindari scaffolding seluruhnya, memilih untuk menulis semua atau sebagian besar kode sumber benar2 dari awal. Padahal kode yang dihasilkan dapat berfungsi sebagai panduan untuk lebih memahami bagaimana framework bekerja atau mengembangkan prototipe. Screenshot di bawah ini menunjukkan Scaffolding berdasarkan tabel “products”:

$ phalcon scaffold --table-name products

Generator Scaffolding akan membangun beberapa file dalam aplikasi Anda, bersama dengan beberapa folder. Berikut adalah gambaran singkat dari apa yang akan dihasilkan:

Berkas Tujuan
app / controllers / ProductsController.php pengontrol u/ produk
app / model / products.php Model Produk
app / views / layout / products.phtml Layout Controller untuk Produk
app / views / produk / create.phtml View u/ action “create”
app / views / produk / edit.phtml View u/ action “edit”
app / views / produk / search.phtml View u/ action “search”

Saat mengakses controller yang baru dihasilkan, Anda akan melihat form pencarian dan link untuk membuat produk baru:

../_images/tools-10.png

halaman “create” membantu Anda untuk membuat produk dgn menerapkan validasi pada model produk. Phalcon otomatis akan memvalidasi kolom non-null & menghasilkan peringatan jika tak lolos proses validasi.

../_images/tools-11.png

Setelah melakukan pencarian, komponen pager (pagination) tersedia untuk menunjukkan hasil yg terbagi menjadi beberapa halaman. Gunakan link “Edit” atau “Delete” di samping setiap hasil untuk menjalankan tindakan tersebut.

../_images/tools-12.png

Web Interface Tools 

Juga, jika Anda suka, bisa menggunakan Phalcon Developer Tools dgn antarmuka web. Check out screencast berikut untuk mengetahui cara kerjanya:

Mengintegrasikan Tools dengan IDE PhpStorm  

Screencast di bawah ini menunjukkan bagaimana untuk mengintegrasikan Developer Tool dengan PhpStorm IDE . Langkah-langkah konfigurasi dapat dengan mudah disesuaikan dengan IDE PHP lain.

Kesimpulan 

Phalcon Developer Tools menyediakan cara mudah untuk menghasilkan kode untuk aplikasi Anda, mengurangi waktu dan potensi kesalahan coding dalam pengembangan.

Terjemahan dr Phalcon Developer Tool
http://docs.phalconphp.com/en/latest/reference/tools.html