Jamal Armel
Pengembangan aplikasi web dengan
Laravel PHP
Framework version 4
Abstract
|
Author(s) Title
Number of Pages
Date
|
Jamal Armel
Web
application development with Laravel PHP
Framework ver-
sion 4
53
pages
11
April 2014
|
|
|
Degree
|
Bachelor of Engineering
|
|
|
Degree Programme
|
Media Engineering
|
|
|
Specialisation option
|
.NET application
development
and Hybrid Media
|
|
|
Instructor(s)
|
Aarne Klemetti, Senior Lecturer
|
|
|
Tujuan
dari tesis ini adalah untuk mempelajari kerangka PHP baru dan menggunakannya
secara efisien untuk membangun sebuah aplikasi web eCommerce untuk sebuah
perusahaan start-up lepas kecil yang akan membiarkan pelanggan potensial
memeriksa produk berdasarkan kategori dan lulus perintah aman. Untuk memenuhi
set persyaratan, suatu sistem yang terdiri dari aplikasi web dengan backend
dirancang dan diimplementasikan menggunakan dibangun di fitur Laravel seperti
Komposer, fasih, Blade dan Artisan dan setumpuk WAMP.
Aplikasi web dibangun dengan menggunakan Laravel kerangka versi 4, PHP kerangka modern yang bertujuan untuk membuat pengembangan PHP lebih mudah, lebih cepat dan lebih intuitif. Web ap lipatan dibangun mengikuti pola arsitektur MVC. Panel Admin diciptakan untuk dengan mudah memperbarui dan mengelola kategori dan produk dan meng-upload gambar produk juga. Sebuah antarmuka publik dibuat tersedia juga untuk membiarkan pengguna terdaftar untuk login dan menambahkan perintah untuk gerobak mereka dan melanjutkan untuk memeriksa menggunakan PayPal. Aplikasi ini mudah diupgrade dan fitur dapat ditambahkan atau dihapus dengan mudah berkat kemampuan Laravel untuk mengelola paket melalui Composer Packagist repositori online. Hasil membuktikan bahwa Laravel 4 adalah efektif pilihan premium untuk kerangka PHP yang membantu pengembang cepat membangun aman, aplikasi web upgradable. |
||
|
Keywords
|
PHP, Laravel 4, MVC, Database,
eCommerce
|
|
Daftar singkatan
MVC Model, View and
Control
WAMP Windows, Apache,
MySQL, and PHP
PHP Personal
Home Page
DBMS Database
Management System
SQL Structured Query
Language
MySQL My Structured Query
Language
ORM Object Relational Mapper
Apache Apache HTTP Server
HTTP HyperText
Transfer Protocol
CRUD Create,
Read,
Update and
Delete
CSRF Cross-Site Request Forgery
HTML HyperText Markup Language
CSS Cascading Style
Sheets
JSON JavaScript Object Notation
URL Uniform
Resource Locator
XML Extensible Markup Language
API Application Programming
Interface
UI User Interface
1 pengenalan
Tujuan
dari tesis ini adalah untuk mempelajari kerangka PHP baru dan menggunakannya secara
efisien untuk
membangun sebuah
aplikasi web eCommerce untuk sebuah perusahaan start-up lepas kecil yang akan membiarkan pelanggan potensial memeriksa produk berdasarkan kategori dan lulus perintah aman. Untuk memenuhi set persyaratan, suatu sistem yang terdiri dari aplikasi web dengan backend akan dirancang dan diimplementasikan dengan menggunakan kerangka kerja MVC modern.
Hal ini bermanfaat mempertimbangkan penggunaan kerangka
PHP ketika waktu terbatas dan keterampilan pengembang coding PHP tidak sesuai
dengan tingkat tinggi dituntut untuk membangun aplikasi yang kompleks. Kerangka
menangani semua tugas-tugas dasar berulang dari proyek PHP, membiarkan
pengembang berkonsentrasi nya / usahanya pada logika bisnis dan struktur umum
dari proyek secara keseluruhan, dalam melakukannya, kerangka menjadi alat yang
ideal digunakan oleh kata pengembang untuk cepat membangun prototipe
operasional yang kompleks dalam hitungan jam dengan waktu minimal dihabiskan
untuk coding. Kerangka menawarkan juga seluruh jajaran utilitas siap pakai dan
perpustakaan.
Penggunaan kerangka kerja yang kuat dianjurkan
ketika keamanan aplikasi web merupakan
persyaratan penting. Bahkan menjadi suatu keharusan ketika pengembang tidak
memiliki diperlukan pengetahuan untuk mencegah pelanggaran
keamanan terjadi. Sebagian besar kerangka modern
yang memiliki built-in fitur
keamanan yang berkisar dari masukan sanitasi untuk enkripsi automatic
cookie.
Struktur terorganisir dari proyek secara keseluruhan, jelas dan bersih kode yang diperlukan ketika bekerja di sebuah organisasi atau co-mengembangkan aplikasi dalam tim pengembang. Kerangka mengizinkan organisasi kode kata dalam arsitektur logis, sehingga fasilitator Tating pemeliharaan dan upgrade. Untuk mencapai hal ini, kerangka kerja PHP yang modern mengikuti pola arsitektur Model-View-Controller (MVC).
Di antara kerangka PHP yang
sangat populer, Laravel menonjol
dengan klaimnya pada kemampuannya untuk menghasilkan proses
pembangunan yang menyenangkan bagi
pengembang tanpa kehilangan fungsi aplikasi. Itu adalah
salah satu dari banyak alasan itu
dipilih sebagai kerangka pilihan
untuk membangun sebuah aplikasi web eCommerce untuk Armel Solusi lepas start-up. Tesis ini akan belajar
jika Laravel hidup sampai klaim dengan
mengevaluasi kemampuannya dalam membangun dan menjalankan
aplikasi web aman eCommerce dalam
waktu minimal.
2 fitur utama Laravel
Penelitian ini akan fokus hanya pada fitur yang digunakan selama pembangunan aplikasi web eCommerce, jika pekerjaan ini tidak akan cukup besar untuk menutupi keseluruhan fitur dari keseluruhan Laravel 4 framework.
2.1 Architecture
Laravel adalah kerangka
aplikasi web yang mencoba untuk memudahkan proses pembangunan dengan menyederhanakan tugas yang berulang digunakan di sebagian besar aplikasi web saat ini, termasuk namun tidak terbatas pada routing, otentikasi, caching dan sesi. [1]
Karena berhasil
melakukan semua tugas-tugas penting mulai dari web melayani dan basis data mandat pengelolaan yang tepat untuk HTML generasi, Laravel disebut tumpukan kerangka penuh. Lingkungan pengembangan web yang terintegrasi secara vertikal
ini dimaksudkan untuk menawarkan alur kerja ditingkatkan dan halus untuk pengembang. [2]
Tidak seperti lingkungan yang terintegrasi secara vertikal
lainnya, Laravel adalah unik dalam cara memprioritaskan konvensi di atas konfigurasi. Bahkan, sementara banyak kerangka kerja PHP menuntut konfigurasi tugas XML berat-sebelum memulai proyek yang sebenarnya, Laravel hanya membutuhkan beberapa baris kode PHP yang akan diedit dan menjadi siap untuk digunakan. Menghindari atau menggunakan jumlah minimum file konfigurasi memberikan semua aplikasi web Laravel struktur yang mirip kode yang sangat khas dan diidentifikasi. Ini mungkin dianggap sekilas sebagai kendala serius tentang bagaimana pengembang mungkin ingin mengatur struktur nya / aplikasi web sendiri. Namun, kendala ini membuat itu benar-benar jauh lebih mudah untuk membangun aplikasi web. [2]
Semua proyek
Laravel baru keluar dari kotak yang dilengkapi dengan pohon direktori lengkap dan juga banyak file placeholder menghasilkan struktur memungkinkan awal yang cepat dari proses pembangunan yang sebenarnya. Struktur ini tetap sepenuhnya disesuaikan. Berikut pada gambar berikut ini ditampilkan apa struktur seperti terlihat seperti: [3, 16.]
2.2
MVC
Istilah MVC disebutkan secara
singkat di awal pekerjaan ini dan itu berharga menyebutkan sekarang Laravel sebenarnya kerangka MVC yang
lengkap. MVC cepat menjadi praktek
standar industri yang digunakan di
setiap lingkungan pengembangan modern. Banyak kerangka
kerja seperti Ruby on Rails, ASP.NET, CakePHP dan CodeIgniter memanfaatkannya untuk
memisahkan logika di balik aplikasi dari
lapisan representasi. [4, 8.]
Pola arsitektur
MVC membiarkan aplikasi web memiliki banyak pandangan yang berbeda dari model umum tunggal. Artinya, dalam konteks kita saat membangun tion applica eCommerce web, halaman kategori, misalnya, dapat memiliki beberapa pandangan seperti Daftar Produk Lihat Produk atau galeri. Dalam sebuah lingkungan pengembangan MVC, salah satu model untuk tabel Kategori yang akan dibuat dan melalui bahwa satu model beberapa pandangan dapat dibuat. [4,8.]
Pola arsitektur
MVC membiarkan pengembang menulis kode yang dapat dibagi atas dasar tiga hal berikut:
2.2.1 Model
Model adalah
modus dimana pengembang dapat memanipulasi data. Ini terdiri dari lapisan yang berada antara data dan aplikasi. Data itu sendiri dapat disimpan dalam berbagai jenis sistem database seperti MySQL atau bahkan XML sederhana atau file Excel. [4, 8.]
2.2.2 Views
Tampilan adalah representasi visual dari aplikasi web kami (lapisan presentasi), mereka bertanggung jawab untuk menyajikan data yang Controller diterima dari Model (logika bisnis). Mereka dapat dengan mudah dibangun menggunakan bahasa template pisau yang datang dengan Laravel atau hanya menggunakan kode PHP polos. Pisau didorong oleh Template warisan dan bagian. Ketika Laravel membuat Views ini mengkaji pertama ekstensi file mereka, dan tergantung pada hal itu menjadi baik ".blade.php" atau hanya "php", menentukan apakah Laravel memperlakukan kami Lihat sebagai Blade template atau tidak. [3, 14.]
2.2.3 Control
Fungsi utama dari Controller adalah untuk menangani permintaan dan lulus data dari Model ke Tampilan. Jadi Controller dapat dianggap sebagai penghubung antara Model dan Views kami. [4, 8.]
Pengembang
memiliki pilihan untuk menulis nya / logika bisnisnya baik di Router atau lers Control-. Router dapat berguna ketika berhadapan dengan aplikasi web kecil, atau cepat de- denda halaman statis. Menulis Controller untuk setiap halaman dari aplikasi web sehingga tidak perlu. [4, 12.]
Figure 2. Interaksi antara semua bagian pokok dari pola arsitektur MVC. [3, 15]
2.2.4 Database
·
Eloquent
ORM
The Fasih
ORM disediakan dengan Laravel termasuk PHP sederhana ActiveRecord mentasi pemikiran yang memungkinkan query database masalah pengembang dengan sintaks PHP di mana alih-alih menulis kode SQL, metode hanya dirantai. Setiap tabel dalam database memiliki Model yang sesuai di mana pengembang berinteraksi dengan meja mengatakan. [5]
·
Schema
builder
The Laravel
Skema kelas menyediakan database agnostik (yaitu dapat berfungsi dengan tude multi DBMS) cara mengelola semua database yang terkait pekerjaan seperti membuat atau menghapus tabel dan menambahkan field ke tabel yang ada. Ia bekerja dengan banyak database sistemik tems didukung oleh Laravel dan MySQL menjadi default. Kelas Skema memiliki API yang sama di semua sistem database ini. [6]
·
Managing the database with Migrations
Migrasi dapat dianggap sebagai bentuk kontrol versi
untuk database kami. Mereka memungkinkan kita untuk mengubah skema database dan
menjelaskan dan mencatat semua perubahan tertentu dalam file migrasi. Setiap
Migrasi biasanya dikaitkan dengan Builder Skema untuk usaha-lessly mengelola
database aplikasi kita. Migrasi A juga dapat dikembalikan atau "memutar
kembali" menggunakan yang sama mengatakan berkas. [7]
Menggunakan terminal kita dapat menjalankan perintah berikut untuk membuat atau menghapus tabel dalam database kami:
|
Command
|
Description
|
|
$ php artisan migrate:install
|
Creates the migration repository
|
|
$ php artisan migrate:make
|
Creates a
new migration file
|
|
$ php artisan migrate:refresh
|
Resets and reruns all the migrations
|
|
$ php artisan migrate:reset
|
Rollback all the database
migrations
|
|
$ php artisan migrate:rollback
|
Rollback the last database
migration
|
Table 1. Koleksi perintah yang
berkaitan dengan migrasi. [4, 29]
·
Seeders
Kelas Seeder
memungkinkan kita benih data ke meja kami. Fitur ini sangat berharga karena pengembang dapat memasukkan data ke tabel nya / database-nya setiap kali ia / dia ingin menguji aplikasi web. [4,
59.]
Ketika backend
kosong kita bisa mengisinya dengan beberapa data dengan hanya mengeluarkan perintah berikut di terminal:
$ php artisan db:seed
2.3
Composer
Fitur lain yang membuat Laravel menonjol dari kerangka kerja lainnya adalah bahwa hal itu Komposer siap. Bahkan Laravel sendiri merupakan campuran komponen Komposer yang berbeda, ini menambahkan interoperabilitas yang sangat dibutuhkan untuk kerangka kerja.
Komposer adalah alat manajemen dependensi untuk PHP. Pada dasarnya, peran utama Komposer dalam rangka Laravel adalah bahwa ia mengelola ketergantungan encies depend- proyek kami. Misalnya, jika salah satu perpustakaan yang kita gunakan dalam proyek kami tergantung pada tiga perpustakaan lain dan bahwa ada kebutuhan untuk meng-upgrade semua perpustakaan tersebut, maka tidak ada keharusan untuk secara manual mencari dan memperbarui file. Hal ini dimungkinkan untuk memperbarui semua empat perpustakaan melalui satu perintah melalui command-line, yang, "update $ komposer". [8]
Composer Memiliki kemampuan untuk mengelola ketergantungan sampai ke tingkat n diberikan, yang berarti bahwa semua dependensi proyek kami dapat dikelola melalui satu alat yang merupakan pilihan yang sangat berguna untuk memiliki ketika kita berhadapan dengan banyak perpustakaan. Keuntungan lain menggunakan Komposer adalah bahwa hal itu menghasilkan dan menangani file autoload pada akar ven- dor / direktori kami, yang akan berisi semua dependensi proyek yang kabel sampai pemuatan auto kelas ketika dimasukkan dalam naskah PHP. Dengan demikian, tidak perlu dari sisi pengembang untuk mengingat jalan semua dependensi dan termasuk masing-masing pada setiap file proyek, dia / dia hanya perlu memasukkan autoload berkas yang disediakan oleh Communication poser. [4, 11.]
Komposer dipasang dalam bentuk executable PHP yang ditambahkan ke PATH vironment variabel ronment. Sebuah variabel lingkungan PATH adalah daftar dari lokasi yang dieksplorasi ketika perintah dijalankan di terminal. Ketika Komposer dipasang dengan benar, oper bangan dapat melaksanakannya melalui baris perintah dari setiap tempat dalam sistem file menggunakan "$ komposer" perintah. Proyek, dan dependensinya, didefinisikan dalam file JSON, bernama composer.json.
[3, 22.]
Komposer adalah cara masyarakat PHP menuju ke, sehingga ada ribuan paket benar-benar teruji sudah tersedia dalam paket Composer arsip. Laravel dirancang sedemikian rupa sehingga mengintegrasikan paket Komposer mudah. Semua apa yang poser Communication perlu lakukan adalah untuk membaca isi dari file composer.json dan terhubung ke paket-agist, yang merupakan repositori online paket, untuk menyelesaikan semua dependensi, recur- sively. Dependensi ini kemudian didownload ke lokal direktori yang disebut vendor / kami, dan kemudian negara mereka dicatat ke file bernama composer.lock. [3, 25.]
Figure 3. Pandangan dari Packagist, repositori online untuk Komposer [7]
Laravel dikombinasikan
dengan kekuatan Composer memberikan pengembang lebih banyak kebebasan dalam memilih jenis paket ia / dia ingin menggunakan dengan dia / aplikasi web. Misalnya, jika dia / dia tidak suka komponen Mail default yang datang dengan Laravel, yang Swift Mailer, dan dia / dia ingin menggantinya dengan paket yang lebih disukai seperti komponen PHPMailer misalnya, yang juga Komposer siap; dengan demikian, switching ing antara dua paket akan menjadi tugas yang sangat mudah. Pengembang dapat mengganti komponen di akan dan dengan mudah ketika ada perlu melakukannya melalui Komposer dan konfigurasi Laravel. [4, 12.]
2.4
Artisan
Seorang pengembang harus biasanya berinteraksi dengan kerangka Laravel menggunakan utilitas baris-perintah yang menciptakan dan menangani lingkungan proyek Laravel. Laravel memiliki built-in alat baris perintah yang disebut Artisan. Alat ini memungkinkan kita untuk melakukan sebagian besar tugas-tugas pemrograman repetitif dan membosankan bahwa sebagian besar pengembang menghindari untuk melakukan secara manual. [4, 13.]
Artisan dapat
dimanfaatkan untuk membuat kode kerangka, skema database dan membangun migrasi mereka yang dapat sangat berguna untuk mengelola sistem database kami atau memperbaikinya. Kami mungkin juga membuat benih database yang akan memungkinkan kita untuk benih beberapa data awalnya. Hal ini juga dapat digunakan untuk menghasilkan Model dasar, View dan Controller file langsung melalui baris perintah dan mengelola aset-aset dan konfigurasi masing-masing. [4, 13.]
Artisan mari
kita bahkan membuat perintah kita sendiri dan melakukan hal-hal yang mudah dengan mereka seperti mengirim tertunda mail ke penerima atau apapun yang dapat diperlukan untuk benar menjalankan aplikasi web kami. Unit test untuk aplikasi web kami juga dapat dijalankan melalui Artisan. [4, 13.]
3
Creating
the workflow and
configuring our environment
3.1
Operating system
Laravel adalah
kerangka lintas platform
yang dibangun dengan interoperabilitas dalam pikiran. Hal ini dapat digunakan di atas berbagai sistem operasi, termasuk namun tidak terbatas pada Linux, Mac OSX dan Windows. Sistem operasi pilihan untuk proyek ini adalah Microsoft Win dows versi 8.1, yang merupakan persembahan terbaru dari raksasa perangkat lunak.
3.2
Terminal
Seperti telah
dibahas sebelumnya dalam
karya ini, pengembang biasanya berinteraksi dengan Laravel kerangka melalui baris perintah. Sistem operasi Windows dilengkapi dengan dua perintah-garis tersebut, yaitu, prompt Command dan Powershell. Namun, untuk proyek kami kita akan menggunakan populer terminal pihak ketiga bernama Cygwin. Jadi mengapa membuat pilihan seperti itu? Alasannya adalah bahwa salah satu ketidaknyamanan utama bahwa oper bangan bisa hadapi dalam lingkungan pengembangan modern mendukung nya / aplikasi nya di seluruh platform heterogen. [9]
Cygwin menawarkan
lingkungan shell UNIX / Linux standar, bersama dengan banyak perintah sangat berguna untuk platform Windows. Dengan memanfaatkan Cygwin, pengembang dapat menangani berbagai lingkungan dengan cara yang dapat diandalkan dan efektif. [9]
Untuk menginstal Cygwin kita perlu men-download file
eksekusi dari website penulis [9]
dan klik dua kali pada file yang
didownload dan ikuti petunjuk, instalasi dilakukan secara otomatis. [9]
3.3
Text editor
Untuk proyek ini editor teks pilihan untuk membangun aplikasi web kami akan Sublime Text_3. Ini adalah Editor pengembang Web yang dapat melakukan beberapa tugas yang berguna dari jendela editor itu sendiri. Oleh karena itu, pengembang tidak harus terus-menerus beralih di antara jendela dan menjalankan tugas-tugas dari aplikasi lain. Aspek penting lain yang dari editor Sublime Text_3 adalah Paket Control, manajer paket
ini memungkinkan kita untuk
menambahkan fitur paket ini. [4,226]
3.4
Bootstrap as the HTML5/CSS3/Javascript framework
Bootstrap ini bisa dibilang kerangka pembangunan web frontend industri yang paling populer. Ini menawarkan berbagai user-friendly, cross-platform dan potongan diuji kode untuk fre- paling sering digunakan konvensi standar UI. Bootstrap signifikan mempercepat usaha membangun antarmuka antarmuka web karena, benar-benar teruji campuran siap pakai dari HTML markup, gaya CSS, dan JavaScript perilaku. Dengan tions yayasan penting cepat mengatur, kami yakin dapat memodifikasi UI di atas dasar yang kokoh. [10, 7.]
Ada banyak cara untuk men-download Bootstrap, tetapi tidak semua cara ini download Bootstrap adalah sama. Untuk proyek ini meskipun, dan demi kecepatan, kita akan menggunakan Initializr yang menghasilkan template berdasarkan HTML5 Boilerplate oleh mengizinkan veloper de- untuk memilih komponen dia / dia inginkan dari itu. [11]
Kemudian setelah mengklik tombol download kita akan mendapatkan direktori dan file-file berikut, secara logis pengelompokan aset umum dan menyediakan baik variasi disusun dan minified. Direktori dan berkas pohon akan terlihat seperti ini: [12]
bootstrap/
├── css/
│ ├── bootstrap.css
│ ├── bootstrap.min.css
│ ├── bootstrap-theme.css
│ └── bootstrap-theme.min.css
├── js/
│ ├── bootstrap.js
│ └── bootstrap.min.js
└── fonts/
├── glyphicons-halflings-regular.eo
├── glyphicons-halflings-regular.svg
├── glyphicons-halflings-regular.ttf
└── glyphicons-halflings-regular.woff
Harap dicatat bahwa
tesis ini terutama berfokus pada kerangka Laravel, oleh karena itu penggunaan kerangka Bootstrap atau markup HTML, CSS styling dan tindakan JavaScript aplikasi web kami tidak akan dibahas lebih lanjut dari bab ini ini.
3.5
Apache–MySQL–PHP
package
Database
adalah kumpulan data dengan struktur yang telah ditetapkan. Himpunan data yang
perwakilan- sents dapat berkisar dari sesedikit daftar belanja untuk volume
besar informasi dalam jaringan korporasi. Sebuah sistem manajemen database yang
dibutuhkan untuk memanipulasi data yang disimpan dalam database komputer. [13]
Salah
satu sistem manajemen database yang paling populer adalah MySQL server,
menggunakan Structured Query Language yang biasa disebut sebagai SQL. SQL ini
bisa dibilang bahasa standar yang paling umum digunakan untuk memanipulasi
database. Pernyataan SQL dapat digunakan dalam berbagai cara, mereka mungkin
dimasukkan secara langsung atau dimasukkan ke dalam kode yang ditulis dalam
bahasa yang berbeda, atau menggunakan API yang menyembunyikan sintaks SQL sama
sekali. Dalam proyek kami, kami akan menggunakan opsi kedua embedding
pernyataan SQL ke dalam lingkungan pemrograman yang berbeda. [13]
The
Laravel kerangka memiliki persyaratan sistem sangat sedikit, namun secara
eksplisit perlu versi PHP 5.3.7 atau di atas dan mcrypt PHP Extension, yang
terakhir dibundel dengan versi yang lebih baru dari PHP. [15]
Kami
WAMP tumpukan pilihan untuk proyek ini adalah WampServer. Untuk menginstalnya
kita perlu men-download file eksekusi dari penulis situs [14] dan klik dua kali
pada file yang diunduh dan hanya mengikuti petunjuk, instalasi dilakukan secara
otomatis. Paket WampServer disampaikan dengan rilis terbaru dari Apache, MySQL
dan PHP, yaitu, Apache: 2.4.4, MySQL: 5.6.12, PHP: 5.4.12 dan PHPMyAdmin: 4.0.4.
[14]
Figure 4. Versi PHP diinstal
3.6
Installing Composer
Seperti
yang disebutkan sebelumnya dalam pekerjaan ini, kerangka Laravel menggunakan
Komposer untuk mengelola dependensinya. Untuk menginstal Komposer pada mesin
Windows kita harus yakin terlebih dahulu bahwa kita memiliki versi yang sesuai
dari PHP diinstal, maka kita bisa mendapatkan Composer installer Windows dari
penulis situs [8] dan download file Composer- Setup.exe. Selama proses
instalasi, installer akan meminta lokasi eksekusi PHP di sistem kami, dan
karena kita menggunakan WAMP lokasi C: /wamp/bin/php/php5.4.12/php.exe.
Instalasi akan dilanjutkan secara otomatis maka dengan menyelesaikan instalasi
Komposer dan menambahkan php dan Komposer perintah untuk PATH kami. [3, 24.]
Untuk
memastikan bahwa Composer terpasang dengan benar, kita membuka jendela terminal
baru dan masukkan perintah "$ komposer v", perintah ini harus output
pesan informasi versi. [3, 24.]
Figure 5. pesan informasi versi Komposer
3.7
Installing Laravel 4
Kami
dapat menginstal Laravel dengan hanya mengeluarkan "$ composer
create-project laravel/laravel" perintah di terminal kami diikuti dengan
nama proyek, tapi sebelum itu kita harus yakin bahwa kita mengubah direktori ke
folder pembangunan kita. [15]
Figure 6. Perintah dikeluarkan untuk
membuat proyek baru Laravel
Setelah
instalasi berhasil, Laravel mungkin masih memerlukan satu set izin untuk
dikonfigurasi, yaitu folder dalam direktori aplikasi / storage memerlukan akses
tulis oleh server web. Hal ini dapat dicapai dengan mengeluarkan perintah
" $ chmod
–R 755" diikuti dengan nama direktori. "[15]
Figure 7. Mengubah izin untuk mengakses
aplikasi direktori / storage
3.8
Database
Untuk
membuat database untuk proyek Laravel, kita hanya membuka panel phpMyAdmin di
browser kita pilihan dan kita melanjutkan untuk membuat database dengan memberi
nama dan mengedit kredensial keamanan.
Figure 8. Membuat Database
Sebelum
memulai, kita harus yakin untuk mengkonfigurasi koneksi database dalam file
app/config/database.php dengan mengedit baris kode PHP yang berisi mandat untuk
mencocokkan kredensial database kami ini. Default database Laravel, yang
merupakan MySQL akan disimpan sebagai sistem manajemen database kami untuk
proyek kami saat ini.
Figure 9. Database connection set-up
Setelah
mengkonfigurasi database kita bisa mulai aplikasi kita tanpa perlu untuk
menembak server lokal WAMP kami sebagai Laravel menggunakan server pengembangan
built-in yang dibundel dengan PHP versi 5.4 atau yang lebih baru. Untuk memulai
server pengembangan kami, kami hanya menggunakan Arti- san perintah " $ php artisan
serve". [3, 32.]
Figure 10. Starting the Laravel’s built-in development server
Untuk
memastikan bahwa aplikasi kita dan berjalan dan bahwa instalasi Laravel kami
dilakukan dengan benar kita membuka browser web kami dan kami masukkan URL
berikut: http://localhost:8000. Kita harus disambut dengan pesan selamat datang
Laravel ini.
Figure 11. Screenshot of
a successful Laravel installation
Ini
mengakhiri paruh pertama kerja ini di mana kami memperkenalkan kerangka Laravel
dan dibuat dan dikonfigurasi lingkungan pengembangan untuk proyek eCommerce
kami. Berikutnya, proses pembangunan aplikasi web kami akan ditutupi sepenuhnya.
4
Building the application with Laravel 4
4.1
Designing our application
4.1.1 The Idea
Tujuan
dari proyek ini adalah untuk membangun database dibrowse kategori dan produk.
Administrator akan dapat membuat halaman untuknya / kategori dan produk dan
masukan informasi sederhana seperti nama, ketersediaan, dan gambar untuk setiap
produk. Aplikasi web kami akan mendukung dasar Buat-Ambil-Update-Delete operasi
(CRUD). Kami akan membuat halaman juga tersedia untuk publik dengan pilihan
untuk menyaring produk berdasarkan kategori dan membiarkan pengguna login dan
lulus pesanan mereka dan melanjutkan ke checkout menggunakan PayPal. Semua
keamanan, otentikasi, dan fitur izin akan dibahas dalam rincian lebih lanjut
dalam bab "Otentikasi dan keamanan".
4.1.2 Entities, relationships and
attributes
Awalnya,
entitas aplikasi harus didefinisikan. Suatu entitas adalah tempat, hal atau
satu orang tentang dimana data dapat disimpan atau diklasifikasikan dan telah
menyatakan hubungan dengan entitas lainnya. Dari persyaratan awal, kita dapat
mendefinisikan entitas berikut dan atribut masing-masing: [3, 30]
• Kategori, yang memiliki
identifier dan nama.
• Produk yang memiliki identifier numerik,
judul, deskripsi, harga, ketersediaan dan gambar.
• Pengguna yang memiliki identifier
numerik, nama pertama, nama terakhir, email dan telepon dan
apakah dia seorang admin (default bukan admin).
Informasi
ini penting dalam membantu kami dengan membangun skema database kami yang akan
menyimpan yang telah ditetapkan entitas, hubungan, dan atribut dan Model
mereka, yaitu, kelas PHP yang mewakili objek dalam database kami. [3, 30]
Figure 12. Hubungan antara konstituen dari
database
NB: PK->Primary Key and
FK->Foreign Key.
Dari
diagram kita dapat melihat bahwa kategori akan memiliki "hasMany"
hubungan dengan produk dan produk akan memiliki "belongTo" hubungan
dengan kategori. Hal ini akan dibahas lebih jauh lagi ketika kita akan
membangun Model kami.
4.1.3 Map of the application
Saat
ini, struktur URL dari aplikasi web kami harus didefinisikan. Ada banyak
keuntungan dalam memastikan untuk memiliki URL ekspresif dan bersih. Dari sudut
pandang kegunaan, navigasi aplikasi web kami akan dilakukan dengan mudah dan
tampak kurang menakutkan untuk pengunjung. Mereka, URL, juga akan biasanya
peringkat tinggi dalam hasil mesin pencari espe- secara resmi jika mereka
memiliki kata kunci yang sesuai. Kita akan memanfaatkan rute berikut [18]
dalam aplikasi web kami untuk memenuhi set awal persyaratan: [3, 31.]
dalam aplikasi web kami untuk memenuhi set awal persyaratan: [3, 31.]
|
Method
|
Route
|
Description
|
|
GET
|
/
|
Index
|
|
GET
|
admin/categories/index
|
Overview page
|
|
GET
|
admin/categories/create
|
Form to create
a new category page
|
|
GET
|
admin/categories/destroy
|
Form to confirm deletion of page
|
|
GET
|
admin/products/index
|
Overview page
|
|
GET
|
admin/products/create
|
Form to create a new product page
|
|
PUT
|
admin/products/index
|
Form to update a product page
|
|
GET
|
admin/products/destroy
|
Form to confirm deletion of page
|
|
GET
|
store/category/id
|
Overview of single category
|
|
GET
|
store/view/id
|
Overview of single product
|
|
GET
|
store/cart
|
Overview page
|
|
GET
|
store/contact
|
Overview page
|
Table 2.
The application’s set of
routes
4.2
Creating a new application
4.2.1 Creating a main view
Seperti
yang dijelaskan sebelumnya dalam karya ini, blade template mari kita membuat layout hirarkis dengan
membiarkan template menjadi bersarang dan / atau diperpanjang. [3, 40]
Prosedur
ini cukup lurus ke depan, yaitu, kita menyalin file "index.html" yang
datang dengan instalasi Bootstrap kami dan kami menyimpannya sebagai app / views
/ layouts / main.blade.php.
Kami
akan menggunakan Laravel pembantu bukan kode HTML biasa, yang akan membantu
kita menulis kode lebih ringkas dan juga melarikan diri dari setiap entitas
HTML. Kami melakukan perubahan ini berikut contoh-contoh ini: [16]
For styles:
<link rel="stylesheet" href="css/main.css"> becomes
{{ HTML::style('css/main.css')
}}
For scripts: <script
src="js/vendor/modernizr-2.6.2.min.js"></script>
becomes
{{ HTML::script('js/vendor/modernizr-2.6.2.min.js')
}} For images:
<img src="img/user-icon.gif" alt="Sign In" /> becomes
{{ HTML::image('img/user-icon.gif',
'Sign In') }}
<html>
<body>
This is the main sidebar.
<div class="container">
</div>
</body>
</html>
Kemudian
kita bisa menggunakan template pisau utama dari dalam Lihat lain dengan
menggunakan struktur dasar ini: [17]
@extends('layouts.main)
<p>This is appended to the main sidebar.</p>
@stop
<p>This is the body content.</p>
@stop
The "yield" perintah adalah sebuah tempat untuk
banyak bagian yang pandangan bersarang dapat mengisi dan menimpa. Sementara
"section" dan "stop" perintah baik menentukan blok konten
yang akan disuntikkan ke dalam template utama. Sebuah menskemakan seluruh
proses ini dapat dilihat pada diagram berikut: [3,40.]
Figure 13. Blocks of content being injected into main template [3, 40]
Praktis
kita mengosongkan bagian konten utama kami dalam file main.blade.php dan
menggantinya denganyield ('konten'). Kode yang dihasilkan akan menjadi
"utama" template yang masing-masing pandangan kami dalam aplikasi web
kami akan menggunakan. [3, 40.]
Sebuah area notifikasi antara header dan konten halaman
telah disiapkan jika ada kebutuhan untuk menginformasikan pengguna tentang
hasil dari tindakan-tindakan tertentu. Ini bijak Flash-pesan berasal dari objek
Session.
Langkah
berikutnya adalah untuk membawa sumber daya lain untuk View utama kami, untuk
melakukannya kita copy semua css / js / img / font aset yang datang dengan
instalasi Bootstrap kami dan kami menempatkan mereka di dalam app/public
directory kita. [3, 40.]
Penciptaan
pandangan individu untuk setiap bagian dari aplikasi web kami akan dibahas
dalam rincian lengkap kemudian di " Creating views" bagian dari
pekerjaan ini.
4.2.2 Menciptakan model fasih dan skema masing-masing.
Seperti
telah kita lihat sebelumnya, Laravel 4 dibundel dengan ORM sendiri bernama
fasih, perangkat canggih ini akan membiarkan kita mendefinisikan entitas kami,
peta mereka untuk tabel database masing-masing, dan memanipulasi mereka dengan
hanya menggunakan metode PHP bukannya SQL sintaks.
Kita
mulai dengan mendefinisikan model dengan yang aplikasi kita akan berinteraksi.
Kami sebelumnya diakui tiga utama entitas, kategori, produk dan pengguna. Ini
adalah konvensi di antara para pengembang Laravel untuk menulis nama model
dalam bentuk tunggal; model bernama Produk akan memetakan ke meja produk dalam
database, dan model Kategori akan memetakan ke kategori.
Kategori
Model, disimpan di dalam app/models/Category.php, akan memiliki
"hasMany" hubungan dengan model Produk [21]
Figure 14. Category model
Untuk
membuat migrasi untuk model ini kami mengeluarkan perintah “$ php
artisan migrate:make" diikuti dengan nama migrasi.
Figure 15. Migration creation
Kami
kemudian buka file migrasi dalam app/database /migrasi dan kita menulis
skema menggunakan kelas Skema. [21]
Figure 16. Pembangun skema dengan membuat
dan drop metode
Untuk membuat tabel dalam database yang harus kita lakukan sekarang adalah untuk mengeluarkan perintah “$ php
artisan migrate”.
Figure 17. Artisan migrate to create the table in the database
Figure 18. Categories table created successfully
Kami mengikuti langkah-langkah
sebelumnya yang sama untuk menciptakan model produk, yang disimpan di dalam
app/models/Product.php, dan akan memiliki "belongsTo" hubungan dengan
model Kategori. [21]
Figure 19. Product model
Figure 20. Product schema
Jenis
harus selalu sama. Jadi kita harus berhati-hati untuk selalu membuat kolom
kunci asing unsigned ketika referensi sebuah incrementing integer. [6]
Figure 21. Products table created successfully
Model
Pengguna adalah kasus khusus karena implikasi keamanan, itu akan dibahas
kemudian dalam "Otentikasi pengguna" bagian dari pekerjaan ini.
4.2.3 Mengelola Gambar sebagai contoh manajemen
ketergantungan
Untuk
produk kami melihat di toko kita perlu meng-upload foto dan mengubah ukuran
mereka untuk dapat melihat mereka sebagai thumbnail. Untuk melakukannya, kita
perlu menggunakan paket eksternal bernama Intervention/image. Untuk menambah
ketergantungan baru ini, kita harus menginstalnya melalui Komposer. Kami menuju
ke file yang composer.json dan tambahkan baris yang disorot berikut: [4, 109.]
Figure 22. Adding a
new
dependency throug Composer
Dan
kemudian kita jalankan perintah berikut dalam terminal Composer kami: "$ composer
update". Ini akan menginstal paket Intervensi dalam direktori penjual.
Untuk memastikan bahwa Laravel autoloaders itu kami juga perlu menambahkan
penyedia layanan kelas. Kita perlu ke app/config/app.php di bagian array yang penyedia
layanan dan tambahkan baris disorot berikut untuk Intervensi:
Figure 23. Binding the service provider with the Laravel setup
Setelah
menyelesaikan langkah sebelumnya, kita dapat memiliki akses ke perpustakaan
Intervensi melalui alias gambar otomatis diambil oleh Laravel. Untuk
melakukannya, dan dalam alias kelas bagian dari file yang sama kita perlu
menambahkan Fasad [19], jadi kami hanya dapat mengaksesnya melalui sebuah alias
di kami alias Array: [4, 109.]
Figure 24. Adding the Facade for Intervation
Langkah terakhir adalah untuk menciptakan sebuah lokasi untuk menyimpan gambar kita upload. Kami akan menambahkan folder bernama "produk" ke direktori public/image/.
Gambar
menyimpan dan mengubah ukuran metode yang akan digunakan dalam produk
controller kita.
4.2.4 Membuat Controller dan rute masing-masing
Seperti
yang kita lihat sebelumnya dalam karya ini, fungsi utama dari Controller adalah
untuk menangani permintaan dan lulus data dari Model ke Tampilan. Jadi
Controller dapat dianggap sebagai penghubung antara Model dan Views kami.























