7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. PHP

10 Alasan kuat untuk menggunakan Zend Framework

Read Time: 17 mins

Indonesian (Bahasa Indonesia) translation by Dika Budiaji (you can also view the original English article)

Mencoba untuk menentukan framework yang digunakan untuk proyek baru Anda? Dalam artikel ini, kita akan pelajari dengan mendalam tentang mengapa Zend Framework benar-benar harus menjadi PHP framework pilihan.


Pengenalan

Apakah Anda memulai sebuah proyek baru atau meningkatkan yang sudah ada, dalam artikel ini, saya telah menyediakan sepuluh alasan mengapa Anda harus menggunakan Zend Framework untuk proyek berikutnya, dan mudah-mudahan, ini akan membantu Anda dalam membuat keputusan.


Alasan 1. Extend Classes seperti tidak ada besok

Zend Framework adalah framework sepenuhnya berorientasi objek, dan dengan demikian, itu menggunakan banyak berorientasi objek (OO) konsep seperti inheritance dan interface. Hal ini membuat paling, jika tidak semua, ZF's komponen dapat menjadi extendable di beberapa titik. Hal ini memungkinkan para pengembang untuk menerapkan tersendiri variasi komponen individu tanpa menghack ke ZF basis kode itu sendiri. Mampu menyesuaikan ZF cara ini memungkinkan Anda untuk membuat fungsi yang unik untuk proyek Anda, tetapi karena sifat berorientasi objek, Anda dapat menggunakan fungsi ini dalam proyek-proyek lain juga.

Contoh

Zend Framework memiliki komponen validasi yang sangat banyak, yang dapat Anda gunakan untuk memvalidasi data yang berasal dari form. Di ZF, from diperlakukan sebagai objek serta, dan diwakili oleh Zend_Form component.

Mari kita asumsikan bahwa Anda ingin membuat sebuah validator custom URL untuk membatasi URL input dari user. Cara tercepat untuk melakukan hal ini akan hanya memvalidasi input menggunakan sesuatu seperti:

Tapi ini tidak akan mematuhi sifat OO form objek , karena tidak digunakan dalam konteks form. Untuk memecahkan masalah ini, kita dapat membuat kelas Zend_Validator baru dengan extending kelas Zend_Validate_Abstract:

Ini benar-benar menggunakan Zend_Uri class, yang sudah memiliki URL checking metode yang dapat kita gunakan. Tapi sejak itu tidak extend class Zend_Validate_Abstract, kami implement class wrapping yang menerapkan abstract class yang diperlukan. Hal ini memungkinkan kita menggunakan Zend_Uri URL checking fungsi dalam objek Zend_Form kami seperti:

Jika kita ingin memeriksa bahwa URL video YouTube yang valid, kita bisa melakukan sesuatu seperti ini:

Jika kita menambahkan ini ke situs form objek sebagai sebuah validator, itu akan memastikan bahwa semua URL yang dikirimkan dimulai dengan awalan URL video YouTube benar.


Alasan 2. Kebaikan Object-oriented

Pada Zend Framework, segala sesuatu adalah objek, seperti yang dibuktikan oleh contoh kita di atas. Hal ini menimbulkan kelemahan sendiri, seperti membuat hal-hal yang lebih rumit untuk kode. Keuntungan yang utama, meskipun, adalah kemampuan untuk membuat kode menjadi reusable, dan karena tak seorang pun suka mengulang sendiri, ini adalah hal yang sangat baik.

Contoh

Kita sudah memiliki class Zend_Validate_Url dan Form_Site dari contoh di atas, jadi mari kita menggunakan kembali mereka dalam contoh ini.

Berikut adalah apa yang akan terlihat seperti pada browser:

Jika Anda mencoba untuk submit URL tidak valid, Anda dapat melihat kami validator URL di tempat kerja:

Di sini, Anda dapat melihat apa yang akan terjadi jika Anda melakukan input URL yang valid:

Seperti yang Anda lihat, kita tidak pernah punya untuk mengulangi form object code.

"Zend_Validate classes dapat digunakan dengan cara lain juga, tidak hanya dalam konteks Zend_Form class. Anda hanya instantiate sebuah Zend_Validate class dan memanggil metode isValid($parameter), passing nilai yang Anda ingin memvalidasi."


Alasan 3. Menggunakan apa yang Anda butuhkan, lupakan yang lain

Gambar milik http://dev.juokaz.com

Dengan desain, Zend Framework adalah kumpulan classes. biasa, Anda akan menggunakan Zend MVC komponen untuk membuat proyek ZF fully-functional, tetapi dalam kasus lain, Anda hanya dapat memuat komponen-komponen yang Anda butuhkan. ZF sangat decoupled, yang berarti kita dapat mengambil keuntungan dari komponen perpustakaan sebagai individu, bukan framework secara keseluruhan.

Jika Anda telah melihat artikel framework, Anda mungkin pernah mendengar istilah glue framework. ZF, secara default, adalah glue framework. Sifat decoupled membuatnya mudah untuk digunakan sebagai "lem" untuk aplikasi yang sudah ada.

Ada sebuah perdebatan antara menggunakan glue framework vs full-stack framework. Full-stack framework adalah  memberikan Anda semua yang Anda butuhkan untuk membuat proyek Anda, seperti implementasi ORM, code-generation atau scaffolding. Full-stack framework memerlukan paling sedikit usaha untuk membuat sebuah proyek, tapi jatuh pendek dalam hal fleksibilitas, karena memaksakan ketat Konvensi pada proyek Anda.

Contoh

Katakanlah Anda perlu cara untuk mengambil informasi tentang spesifik video di YouTube. Zend_Gdata_Youtube adalah komponen ZF yang memungkinkan Anda untuk mengakses data dari YouTube melalui GData API. Mengambil informasi video sederhana seperti:

Sampel kode milik Google Developer Guide

Kode ini akan memperlihatkan:

Satu hal yang perlu diperhatikan di sini: komponen Zend Framework ini (GData) adalah Perpustakaan PHP resmi didukung oleh Google untuk mengakses API. Framework decoupled memungkinkan kita untuk menggunakan komponen dalam setiap proyek, terlepas dari framework yang kita pakai.


Alasan 4. Hal ini memungkinkan Anda melakukan banyak hal-hal!

Salah satu hal yang paling kucintai tentang Zend Framework adalah bahwa ia memiliki banyak komponen. Perlu cara untuk mengotentikasi user? Gunakan Zend_Auth. kebutuhan untuk mengontrol akses ke sumber daya Anda? Lihat Zend_Acl. Perlu membuat beberapa form? Kami memiliki Zend_Form. Perlu untuk membaca RSS feed? Anda dapat menggunakan Zend_Feed untuk itu. Hal ini pada dasarnya  Swiss Army Knife untuk PHP classes!

Zend benar-benar datang dengan beberapa demo yang menunjukkan bagaimana untuk menggunakan komponen yang berbeda:

Untuk melihat ini, cara terbaik adalah untuk hanya men-download penuh package dari Zend Framework dan uji semua di mesin anda.

Untuk daftar lengkap dari semua komponen, Anda dapat memeriksa Zend Framework Manual.


Alasan 5. Tidak ada Model implementasi - memilih petualangan Anda sendiri!

Gambar milik http://www.vintagecomputing.com

Ini sebenarnya adalah salah satu alasan mengapa sebagian besar developer tidak menggunakan Zend Framework - itu karena tidak memiliki Model implementasi sendiri. Bagi mereka yang tidak tahu apa itu Model, M dalam MVC, yang adalah singkatan "Model-View-Controller", sebuah arsitektur pemrograman yang digunakan oleh kebanyakan PHP Framework.

Apakah itu berarti bahwa Zend Framework adalah hanya Framework "VC"?

Ya, dan tidak.

Ya, ini adalah framework VC tidak memiliki sendiri Model implementasi. Hal ini membuat sulit bagi beberapa orang untuk menggunakan ZF, terutama jika mereka datang dari sebuah framework yang memiliki Model implementasi (seperti CakePHP, Symfony, atau bahkan Ruby on Rails).

Di sisi lain, tidak, ini adalah MVC framework juga, karena selain memberikan cara generik untuk mengakses database (menggunakan Zend_Db), itu sebenarnya masih mengandalkan semacam Model implementasi. Apa yang dilakukannya berbeda adalah bahwa hal itu meninggalkan jenis implementasi sampai ñ pengembang yang sebagian mengatakan harus terjadi karena model yang benar-benar dimana logika bisnis aplikasi berada, dan oleh karena itu, mereka tidak sesuatu yang dapat dikembangkan sebagai komponen generik. Zend Framework filosofi menyatakan bahwa model implementasi unik untuk projectóit 's mustahil untuk membuat sebuah implementasi abstrak itu karena mereka tidak benar-benar tahu apa yang Anda butuhkan. Mereka percaya bahwa model harus diimplementasi oleh developer sendiri.

Bagaimana Apakah ini menjadi hal baik?

Tidak memiliki Model implementasi berarti bahwa pengembang bebas untuk menggunakan segala cara yang ia implementasi, atau bahkan hanya mengintegrasikan implementasi yang sudah ada. Menjadi bebas dari kekangan standar, pengembang kemudian dibiarkan untuk membuat implementasi yang lebih kompleks, daripada hanya sederhana representasi tabel, yang merupakan cara biasa Model implementasi dibuat. Model berisi business logic Anda. Mereka tidak dapat dibatasi oleh tabel database Anda; Sebaliknya, mereka harus menentukan koneksi dari tabel ini untuk satu sama lain. Hal ini memungkinkan Anda menaruh sebagian besar kode pemrograman di model Anda, karena itu memuaskan paradigma "Thin Controllers, Fat Models" MVC.

Jadi bagaimana akan menggunakan Zend Framework jika saya tidak tahu cara membuat model saya sendiri?

Untuk pemula, Zend Framework Quickstart tutorial menunjukkan cara yang baik untuk menerapkan model. Dalam tutorial, mereka menerapkan pendekatan ORM untuk model, dimana Anda dapat membuat tiga filesóthe Model yang sebenarnya, yang merupakan representasi abstrak objek Anda; Mapper, yang memetakan data dari database model Anda; dan sebuah Tabel Database objek, yang digunakan oleh mapper untuk mendapatkan data. Anda dapat memeriksa kode dalam tutorial ZF Quickstart, dimana mereka menggunakan pendekatan ini untuk menerapkan model aplikasi Guestbook sederhana.

Bagi mereka yang bertanya "Mengapa saya harus membuat kode sendiri sedangkan framework lainnya melakukan pekerjaan untuk saya?", ini adalah pertanyaan sempurna untuk alasan saya berikutnya...


Alasan 6. Mengintegrasikan dengan apa pun yang Anda inginkan!

Zend Framework dipisahkan sifat membuatnya sangat mudah untuk mengintegrasikan Perpustakaan lain yang ingin Anda gunakan. Katakanlah Anda ingin menggunakan Smarty sebagai sistem template Anda. Hal ini dapat dilakukan dengan hanya membuat class pembungkus untuk Zend_View_Abstract, yang menggunakan Smarty instance untuk membuat view.

Ini bekerja dua arah, seperti yang Anda dapat mengintegrasikan ZF ke perpustakaan lain juga. Misalnya, Anda dapat mengintegrasikan ZF ke Symfony. Mereka berencana untuk melakukan hal ini dengan 2 Symfony, menggunakan Zend_Cache dan Zend_Log komponen dari ZF.

Contoh

Contoh ini, kami akan mencoba menggunakan Doctrine untuk menerapkan Model kami. Melanjutkan dari contoh di atas, situs kami mengatakan Katakan anda sudah menerapkan tabel DB Anda seperti:

Untuk mengintegrasikan Doctrine ke ZF, kita akan memastikan bahwa pengaturan yang tepat yang ditetapkan. Saya sudah mengikuti tutorial ini dari dev.juokaz.com tentang penggunaan Doctrine dengan ZF.

Dengan asumsi semuanya berjalan baik, Anda hanya harus menghasilkan file model dengan menjalankan php doctrine-cli.php file dari tutorial seperti begitu:

Anda akan melihat pesan sukses ini:

Setelah itu, Anda dapat memeriksa folder yang Anda set sebagai tempat untuk menyimpan menghasilkan Model class.

Kemudian dalam class controller kita, kita hanya dapat menggunakan class model situs kita.

Jika kita memeriksa table sites, kita akan melihat bahwa record ada disana.

Sekarang, setiap kali kami submit situs, controller kami akan menggunaka Doctrine model implementasi untuk menyimpan ke database kami. Bukankah itu bagus dan mudah? Setup mungkin sedikit rumit, tapi di sisi positifnya, proyek kami sekarang dapat mengambil keuntungan dari tool yang telah dikembangkan secara khusus untuk Model implementasi. Proyek kami sekarang memiliki kekuatan dua sangat maju teknologi di balik itu.


Alasan 7. Pedoman dan standar

Zend Framework dikembangkan dalam hubungannya dengan panduan kontributor sangat luas, yang pada dasarnya menyatakan bahwa:

  1. Setiap kontributor untuk baik dokumentasi dan/atau kode, pada tingkat apapun (baik dengan beberapa baris kode, patch, atau bahkan komponen baru) harus menandatangani Contribute License Agreement (CLA).
  2. Kode harus diuji dan dicover oleh unit test menggunakan PHPUnit. Dan...
  3. Kode harus mematuhi standar pengkodean yang ketat

Pedoman yang ketat memastikan bahwa Anda hanya menggunakan kode yang dapat dibaca, berkualitas tinggi yang telah diuji secara menyeluruh.


Alasan 8. Semua kode tidak bersalah sampai terbukti bersalah (alias Test-Drive Development)

Gambar milik http://www.codesmack.com/

Test-driven development adalah suatu teknik pemrograman yang memerlukan seorang pengembang untuk menulis tes untuk fungsi ia seharusnya kode sebelum menulis kode untuk fungsi itu sendiri. Dengan menulis tes pertama, itu memastikan bahwa programmer:

  1. Berpikir tentang kemungkinan penggunaan-kasus kode nya
  2. Menciptakan whitelist dari input dan output
  3. Membuatnya lebih mudah untuk refactor kode nya
  4. Membuatnya lebih mudah untuk pass kode dari satu orang ke yang lain

Test-driven development Cycle
Image dimiliki  Wikipedia

Zend Framework membuatnya mudah untuk melakukan TDD melalui Zend_Test, yang menggunakan PHPUnit, sebuah unit testing framework yang populer. PHPUnit memungkinkan Anda menguji tidak hanya controller Anda, tetapi juga fungsi perpustakaan dan model Anda. Untuk menambah ini, Zend_Tool, yang merupakan Zend Framework scaffolding utility, sudah membuat ketentuan untuk PHPUnit ketika Anda menggunakannya untuk menciptakan proyek Anda.

Mengintegrasikan PHPUnit dan Zend Framework

Setting up Zend Framework dan PHPUnit ini tidak terlalu sulit. Pada dasarnya, setelah Anda selesai dengan itu, Anda akan dapat menggunakan setup yang sama untuk proyek-proyek di yang akan datang. Hanya sebagai samping catatan, langkah-langkah berikut menganggap bahwa Anda telah menggunakan Zend_Tool untuk scaffold struktur proyek dan file Anda, tapi itu harus relatif sederhana untuk mengubah setup lain.

Pertama, kita perlu menginstal PHPUnit. Cara terbaik adalah untuk menginstal melalui PEAR:

Selanjutnya, kami akan membuka phpunit.xml kami, sebuah file XML yang dihasilkan oleh Zend_Tool. Anda akan menemukan di dalam tests folder dalam direktori root dari proyek Anda. Tambahkan baris berikut:

Setelah menyimpan phpunit.xml, membuat file baru di dalam folder yang sama dengan phpunit.xml yang disebut TestHelper.php. File PHP ini akan membantu kita untuk setup enviroment tes kita.

Lalu kita membuat parent Controller Test Case class, yang semua controller kami akan extend. Ini akan membantu menerapkan metode yang biasanya akan sama sepanjang Controller tes class.

Akhirnya, kita membuat kelas tes controller:

Semua yang tersisa adalah untuk menjalankan pengujian kami. Buka command prompt Anda dan pergi ke folder tests dan ketik:

command line Anda harusnya outputnya sebagai berikut:


PHPUnit dan Zend Framework setup tutorial dan kode milik http://www.dragonbe.com

Alasan 9. Komunitas dan dokumentasi

Karena beberapa komponen, kompleksitas, dan sepenuhnya berorientasi objek pendekatan, Zend Framework memiliki kurva belajar yang sangat curam. Ini akan menjadi lebih mudah untuk belajar karena kelengkapan dokumentasi yang dan komunitas berkembang. Pertama-tama, panduan referensi Zend Framework Programmer's menawarkan panduan lengkap untuk semua komponen ZF, dengan contoh, kode, dan teori penggunaan.

Selain ini, ada banyak blog di luar sana yang berbagi Zend Framework tips dan trik. Sebagai contoh, Phly, boy, phly, blog Matius Weier O'Phinney, kontributor inti Zend Framework, menyediakan banyak wawasan, penggunaan yang pintar dan komponen penjelasan untuk Zend Framework. Zend juga memiliki sebuah situs yang disebut Zend Developer Zone, yang selain penerbitan tutorial untuk Zend Framework, memiliki hal-hal seperti Zend Framework webinar, podcast, dan artikel tentang PHP secara umum. Situs lain, yang disebut gips Zend Casts, menawarkan banyak berguna video tutorial pada komponen Zend Framework yang berbeda juga. Terakhir tetapi tidak paling, ada sebuah buku online gratis yang disebut Zend Framework: Surviving Deep End "ditulis oleh Brady P·draic, kontributor Zend Framework lain.

Seperti yang Anda lihat, ada tidak ada kurangnya dukungan dari komunitas, dokumentasi, dan para developer. Jika Anda memiliki pertanyaan atau memerlukan klarifikasi apapun, quick search dengan kata kunci yang tepat harus hampir selalu memberikan hasil yang relevan. Jika tidak, masih ada Zend Framework Mailing Lists, Forum resmi Zend Framework, Forum Zend Framework tidak resmi atau Forum tidak resmi Zend Framework IRC channel


Alasan 10. Sertifikasi Ahoy!

Jika Anda masih tidak yakin tentang belajar dan menggunakan Zend Framework, alasan ini adalah sebenarnya satu bahwa saya merasa paling membedakan Zend Framework dari semua yang lain. Zend tidak hanya menawarkan Zend Framework sertifikasi, tetapi PHP sertifikasi juga. Dengan menawarkan sertifikasi, Zend membantu Anda menggunakan keahlian Anda dalam PHP dan Zend Framework untuk meningkatkan portofolio atau CV Anda. Situs Zend sertifikasi daftar sejumlah alasan untuk mendapatkan bersertifikat, beberapa diantaranya adalah:

  1. Membedakan diri sendiri dari pesaing ketika mencari pekerjaan baru
  2. Mendapatkan melihat resume/CV
  3. Memiliki profil Anda ditampilkan di halaman kuning di Zend PHP profesional
  4. Menjadi bagian dari grup Linkedin eksklusif untuk ZCE's
  5. Dapatkan diskon khusus pada Zend PHP konferensi di seluruh dunia

Tambahan

Hanya untuk menjaga hal-hal yang seimbang, berikut adalah daftar cepat alasan mengapa Anda mungkin tidak ingin menggunakan Zend Framework:

  1. Kurva belajar yang sangat curam. Ianya tidak sangat sulit untuk pengguna tingkat lanjut PHP, tetapi untuk pemula, ada banyak belajar!
  2. Big Footprint. Karena Zend Framework memiliki banyak komponen, ukuran total relatif lebih tinggi daripada framework lain. Misalnya, folder CI sistem memiliki footprint 1.5MB dibandingkan dengan footprint 28MB Zend Framework.
  3. Tidak solid scaffolding tool. Meskipun Zend_Tool menawarkan beberapa fungsi, hal ini tidak banyak dibandingkan dengan scaffolding utilities fullstack-framework seperti CakePHP atau Symfony.
  4. Tidak ramah Shared Webhosting. Struktur folder yang dihasilkan oleh Zend_Tool menunjukkan bahwa folder publik menjadi direktori yang hanya dapat diakses melalui http ó yang menganggap bahwa pengguna dapat membuat dengan virtual host untuk proyek. Ini adalah sesuatu yang Anda tidak mampu melakukan di paling berbagi web hosting environment.
  5. Terlalu gluey. Karena segala sesuatu di kelas terpisah, memang kadang-kadang sulit untuk membayangkan bagaimana semuanya bekerja. Ini tidak akan menjadi masalah dengan full-stack framework, karena mereka kebanyakan mengurus semuanya untuk Anda. Tanpa Zend_Tool, itu akan sangat sulit untuk mengatur struktur proyek kerja

Kesimpulan

Banyak kemajuan telah dibuat dalam dunia PHP framework dalam beberapa tahun terakhir. Aku akan jujur, ada seluruh banyak ikan di laut. Ada framework seperti Codeigniter, CakePHP dan Symfony yang juga bagus untuk digunakan. Beberapa dari Anda mungkin berpikir, "mengapa melakukan orang ini fokus pada Zend Framework? Mengapa tidak ia menjalankan tes kinerja untuk membandingkan framework yang berbeda?" Untuk itu, saya balas dengan kutipan ini dari sebuah artikel yang sangat menghibur berjudul "PHP Framework Benchmarks: Entertaining But Ultimately Useless" oleh P·draic Brady:

Untuk membuat sebuah patokan positif, Anda perlu memahami bahwa semua framework dibuat sebagai pengobatan tumpukan unoptimised omong kosong bau. Mereka semua lahir buruk dan memburuk dengan usia. Ini terdengar cukup sedih, tapi sebenarnya itu adalah tak terelakkan kompromi antara kinerja dan fitur. Hal ini juga merupakan kompromi antara kinerja dan kemudahan penggunaan. Jadi Anda lihat, kinerja tidak adil yang dihadapi oleh dua lawan: fitur dan kemudahan penggunaan. Semua kinerja dikorbankan dalam nama melayani kebutuhan perkembangan pesat, fleksibilitas, prototyping, dan membuat tampilan kode sumber Anda lebih cantik daripada orang lain Seolah-olah.

Apa yang terjadi jika Anda pindah dari musuh-musuh kinerja dan melakukan beberapa menopang di belakang layar? Anda mendapatkan... menunggu it...oodles kinerja ekstra!

Ketika datang ke sana, framework yang Anda pilih untuk digunakan benar-benar tergantung pada bagaimana nyaman Anda dengan itu. Tak satu pun dari framework ini akan membantu Anda jika Anda tidak dapat mengambil keuntungan penuh dari fitur mereka. Anda dapat menghabiskan minggu atau bahkan berbulan-bulan menggunakan framework tertentu, hanya untuk sampah di akhir karena Anda tidak hanya sebagai nyaman menggunakannya sebagai Anda itu dengan beberapa framework lain.

Jadi saya mengundang Anda untuk setidaknya mencoba Zend. Jika bekerja untuk Anda, itu bagus! Itu bagi saya. Tetapi jika tidak cocok, pergi ke depan dan mencoba yang lain. Segera setelah itu, Anda akan menemukan framework kerja yang tepat untuk kebutuhan Anda.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.