Indonesian (Bahasa Indonesia) translation by Andy Nur (you can also view the original English article)



Jika kamu bertanya, "apa itu Yii?" lihat tutorial saya sebelumnya: Pengenalan Framework Yii, yang mengulas manfaat Yii dan menyertakan ikhtisar tentang apa yang baru di Yii 2.0, yang dirilis 12 Oktober 2014.
Tutorial ini akan memandumu dalam menginstal Yii 2.0, menyiapkan lingkungan pengembangan lokalmu, membuat aplikasi Hello World sederhana, mengatur lingkungan produksi jarak jauhmu untuk hosting dan menyebarkan kodemu dari repositori GitHub.
Memasang Yii 2.0
Dokumentasi
Kamu dapat menemukan petunjuk pemasangan terperinci di sini; Saya akan memandumu melalui dasar-dasar untuk lingkungan pengembangan Mac OS X yang khas. Yii 2.0 memiliki Panduan Definitif (PDF) dan Referensi Class yang mencakup setiap detail Yii. ca
Memasang Composer
Yii2 membutuhkan Composer, pengelola dependensi populer untuk PHP. Jika kamu belum menginstal Composer, lakukan hal berikut:
curl -s http://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Memasang Yii2
Kemudian, gunakan Composer untuk menginstal Yii2. Permintaan instalasi mengharuskanmu menggunakan kredensial akun Github-mu sendiri; daftar jika kamu tidak memiliki akun.
Mari kita sebut proyek pertama ini, "hello"'
cd ~/Sites composer global require "fxp/composer-asset-plugin:1.0.0-beta2" composer create-project --prefer-dist yiisoft/yii2-app-basic hello
Yii2 menyediakan dua template instalasi berbeda tergantung dari aplikasi Anda mengembangkan jenis: dasar dan lanjutan. Untuk tutorial ini, kita akan menggunakan aplikasi dasar yang diinstal secara default. Template aplikasi canggih menyediakan sebuah front-end, kembali akhir dan akses konsol poin untuk aplikasi web yang lebih maju, seperti WordPress blog, itu adalah tugas cron administratif dashboard dan latar belakang.
Pengaturan lingkungan pengembangan lokal Anda
Saya menggunakan gratis, open source MAMP untuk OS X untuk perkembangan lampu saya. Pastikan MAMP berjalan dan server web dan database aktif. Kemudian, membuat symlink untuk MAMP ke direktori app situs Anda:
cd /Applications/MAMP/htdocs ln -s ~/Sites/hello/ /Applications/MAMP/htdocs/hello
Kemudian, kunjungi http://localhost:8888/Halo/web. Anda harus melihat Yii2 aplikasi dasar template berjalan dengan Bootstrap 3.x.
Halaman tersebut mungkin akan membangkitkan Yii 1.1 pengembang yang sudah tidak punya pra-dikonfigurasi dukungan untuk versi terbaru dari Bootstrap, beredar membuka sumber responsif CSS kerangka yang diambil selama sedikit web.
Arsitektur aplikasi Yii
Salah satu fitur yang paling penting dari Yii Framework adalah bahwa ia menyediakan Model View Controller untuk PHP. Tidak hanya ini menyediakan lebih banyak lingkungan Pemrograman terstruktur dan lebih mudah untuk memahami kode, menyederhanakan sejumlah hal yang sulit untuk dilakukan dalam PHP, seperti keamanan dan otomatis kode generasi. Hal ini juga membuat kode kita lebih mudah untuk memperluas dan lebih reusable.
Dengan aplikasi Yii, kita langsung semua lalu lintas untuk file tunggal: /web/index.php file. File ini built-in banyak Yii, dependensi apapun, dan kemudian menjalankan aplikasi Anda.
<?php // comment out the following two lines when deployed to production defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); $config = require(__DIR__ . '/../config/web.php'); (new yii\web\Application($config))->run();
Secara default, ini adalah metode indeks di /controllers/SiteController.php:
public function actionIndex() { return $this->render('index'); }
Umumnya, controller penuh metode, tetapi dengan minimal kode seperti di atas. Controller mengelola akses, leverage model dan membuat pemandangan. Sebagian besar kecerdasan harus dibangun ke model Anda dan pandangan umumnya harus menghasilkan template relatif sederhana operasi.
Secara default, Yii akan membuat /views/layouts/main.php di sekitar tampilan indeks di /views/site/index.php. Tata letak main.php menyediakan struktur HTML dan CSS ke halaman, misalnya toolbar dan wilayah konten. Di dalam main.php, Anda akan melihat panggilan singkat untuk konten:
<div class="container"> <?= Breadcrumbs::widget([ 'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], ]) ?> <?= $content ?> </div>
Variabel $content akan diganti dengan kode yang dihasilkan dari /views/site/index.php, yang saat ini kode HTML statis yang menghasilkan Selamat! Halaman ditampilkan di atas.
Bangunan Halo dunia!
Menyalakan URL cantik
Pertama, mari kita mengaktifkan Yii2's URL cantik dengan mod_rewrite. Di halaman rumah Yii, jika Anda klik pada pilihan menu tentang, URL akan menjadi sesuatu seperti http://localhost:8888/hello/web/index.php?r=site%2Fabout. Kami ingin mengubah http://localhost:8888/Halo/web/situs/tentang.
Subdirektori config termasuk lingkungan konfigurasi untuk aplikasi web dan konsol serta pengaturan database masa depan. Mengedit /config/web.php untuk menambahkan urlManagement ke aplikasi web saat ini. Tambahkan bagian urlManager berikut ini dalam components array:
'components' => [ //... 'urlManager' => [ 'showScriptName' => false, 'enablePrettyUrl' => true ], //... 'request' => [
Kemudian, membuat file .htaccess dalam /web, di mana file index.php utama ada:
RewriteEngine on # If a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward it to index.php RewriteRule . index.php
Pastikan mod_rewrite berjalan secara lokal pada MAMP; Jika tidak, periksa panduan ini Stack Overflow.
Di peramban, kunjungi URL ini: http://localhost:8888/Halo/web/situs/tentang. Anda harus melihat aplikasi Yii tentang halaman dan mengklik pada pilihan menu lain harus membawa URL yang cantik.
Membangun mengatakan Halo dunia! Aksi
Selanjutnya, kami akan menambahkan aksi controller disebut mengatakan untuk mengulang pesan target kami memilih. Dalam /controllers/SiteController.php, menambahkan tindakan berikut:
public function actionSay($target = 'World') { return $this->render('say', ['target' => $target]); }
Ini akan terlihat untuk parameter URL yang disebut target untuk echo ke layar. Jika tidak ada sasaran parameter, ia akan berkata berulang "dunia". Dalam Yii, tindakan didefinisikan sebagai metode bernama dengan awalan "aksi" diikuti dengan nama aksi. Dalam kelas SiteController ini, kita menggunakan actionSay fungsi umum. Yii menggunakan awalan "aksi" untuk membedakan metode aksi dari metode lain.
Perilaku default metode render akan mencari file dalam views/ControllerID/ViewName.php. Jadi, di /views/situs /, membuat file tampilan say.php:
<?php use yii\helpers\Html; ?> <h1>Hello <?= Html::encode($target) ?></h1> <p>Welcome to your Yii2 demonstration application.</p>
Ini adalah file tampilan template untuk mengulangi statis HTML tag h1 dengan menyapa diikuti oleh variabel target. Catatan: Kami menyandikan variabel target untuk mengamankan parameter URL argumentasi kode berbahaya.
Jika Anda mengunjungi url, http://localhost:8888/hello/web/site/say?target=Tuts%20Readers, Anda akan melihat ini:



Itu adalah contoh yang sangat dasar dari Yii2 Model View Controller. Anda dapat membaca deskripsi yang lebih menyeluruh Hello World demonstrasi dan Yii2 MVC di sini.
Sekarang, mari kita mengatur aplikasi kita dengan GitHub dan menyebarkan ke server produksi.
Pengaturan lingkungan Hosting Anda jauh
Yii dasar aplikasi harus berjalan baik dari kotak dengan Apache atau Nginx, aku akan memberikan petunjuk untuk Apache dan Anda dapat menemukan petunjuk untuk Nginx di sini.
Membuat repositori di GitHub
Setelah saya membuat kerangka aplikasi Yii, saya membuat repositori di Github:



Catatan: Ini sedikit lebih mudah pada awalnya untuk menyalin dan menyisipkan .gitignore Yii2 dari GitHub untuk file lokal ~/Sites/hello/.gitignore daripada membuat situs dengan jarak jauh dan harus menggabungkannya secara lokal, namun pendekatan yang baik baik-baik saja.
Saya telah menggunakan Mac OS X GitHub app lebih sering, tetapi Anda juga dapat menggunakan baris perintah untuk menginisialisasi repositori. Di bawah ini, saya mengikuti petunjuk untuk menambahkan proyek yang sudah ada ke GitHub menggunakan baris perintah (ganti "youraccount" dengan nama akun GitHub Anda):
cd ~/Sites/hello git init git commit -m "first commit of hello world for yii2" git remote add origin git@github.com:youraccount/hello.git git push -u origin master
Mengkonfigurasi Apache situs pada Server Anda
Jika Anda belum memiliki lampu server atau awan contoh, ikuti petunjuk instalasi Ubuntu saya generik untuk memulai. Setelah Anda memiliki alamat IP Anda, memodifikasi data DNS untuk memiliki titik rekaman A ke server Anda.
yourdomain.com A 192.161.234.17
Kemudian, log in ke server Anda melalui alamat IP atau domain nama:
ssh root@yourserver.com
Memperbarui konfigurasi, menginstal Git, mengaktifkan mod_rewrite Apache dan mcrypt untuk PHP:
sudo apt-get update sudo apt-get upgrade sudo a2enmod rewrite php5enmod mcrypt
Mengkonfigurasi akses GitHub di Server jauh
Sekarang, kami akan membuat pengguna untuk menarik kode dari Github itu dapat dilayani oleh Apache. Pertama, menginstall git pada server Anda.
sudo apt-get install git
Kemudian, kita akan membuat sebuah group untuk www, menambahkan www-data dan GitHub pengguna untuk itu dan memberikannya kepemilikan direktori web kami.
adduser github addgroup www adduser github www adduser www-data www chown -R :www /var/www chmod +s -R /var/www chmod -vR g+w /var/www/
Selanjutnya, kita membuat sebuah kunci untuk pengguna yang kita berbagi dengan GitHub untuk menjaga kode sinkron:
su github ssh-keygen -t rsa -C "yourgithubaccount@youremail.com" exit cat /home/github/.ssh/id_rsa.pub
Anda akan melihat sesuatu seperti ini, yang Anda butuhkan untuk copy dan paste untuk GitHub.com:



Kunjungi halaman pengaturan untuk repositori soundub Anda GitH di bawah tombol, dan kunci ini menambah repositori Anda:



Setelah Anda menambahkan itu, Anda akan melihat ini tercantum di sini:



Akhirnya, Anda dapat klon pohon ke server produksi:
git clone git@github.com:youraccount/hello.git /var/www/hello
Jika Anda GitHub akses adalah benar dikonfigurasi, itu harus terlihat seperti ini (jika tidak, meninjau ini):



Seperti yang Anda memperluas basis kode dengan tutorial ini seri dan mendorong update dari komputer lokal Anda, Anda akan mampu sync mereka pada server remote produksi dengan git pull. Hal ini lebih sederhana daripada meruntuhkan tarball atau sinkronisasi kode secara manual - dan akan menjadi lebih berguna sebagai seri tutorial ini terus dengan modul berikutnya.
Membuat konfigurasi situs Apache
Buat file konfigurasi Apache situs:
nano /etc/apache2/sites-available/hello.conf
Menyesuaikan konfigurasi ini nama domain:
<VirtualHost *:80> ServerName yourdomain.com # Set document root to be "basic/web" DocumentRoot "/var/www/hello/web" <Directory "/var/www/hello/web"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php </Directory> </VirtualHost>
Mengaktifkan situs Anda:
a2ensite hello.conf a2dissite 000-default.conf service apache2 reload
Kunjungi http://yourdomain.com/site/say?target=World! dan Anda akan melihat Anda aplikasi yang berjalan pada domain Anda tanpa Yii2 debug toolbar di bagian bawah seperti ini:



Selamat! Sekarang kita siap untuk menjelajahi fitur-fitur yang lebih canggih dalam Yii2. Jika Anda ingin tahu kapan tiba tutorial Yii2 selanjutnya, ikuti @tutspluscode atau @reifman di Twitter atau periksa halaman penulis saya. Halaman penulis saya akan mencakup semua artikel dari seri ini segera segera setelah mereka diterbitkan.
Jika Anda memiliki pertanyaan atau koreksi pada tutorial ini, silahkan posting di komentar.
Link terkait
- Yii Framework Website
- Pengantar Yii Framework (Tuts +)
- Contoh pemrograman Yii bebas dan Open Source lain oleh penulis
- Skrip PHP berguna Envato pasar