1-Dosya Yapısı-Directory Structure
Yii1 ile Yii2 arasında ki en belirgin farkların başında değişen dosya yapısı gelmektedir.
2-PHP Requirements
Yii2 Framework çalıştırılacak sunucuda ki PHP versiyonu 5.4.0 ve üzeri olmalıdır. Yii 2, PHP sürümü 5.4 ve üzeri için yeniden yazıldı. Yii 2.0 versiyonu 1.0 versiyonu ile uyumlu değildir ve Yii2 Framework’ü web serverınıza kurabilmeniz için PHP sürümünün en az 5.4 ve üzerini desteklemesi gerekiyor. phpversion()
kodu ile PHP sürümünüzü öğrenebilirsiniz.
echo phpversion(); //PHP mevcut sürümü öğrenme
3-Namespaces
Namespace özelliği PHP 5.3 ile beraber gelen önemli bir özelliktir. PHP için çok sayıda kütüphane olması nedeniyle farklı kütüphanelerde ki isim çakışmaları gerçek bir problem haline gelmişti. Namespace özelliği bu sorunların kaldırılmasında bizlere yardımcı olacak. Örneğin:
use yii\helpers\Url;
Url::base();
Yukarıda gördüğünüz gibi yii\helpers\Url
sınıfının içinde ki base()
fonksiyonunu kullandık.
4-Short array syntax- Kısa Array(Dizi) Yazımı
array(…elements…)
yerine […elements…]
yazımı kullanılır. Aslında Yii2’de her iki yazım şeklide kullanılabilir ancak güvenlik nedenleri ile ikinci yazım şekli tercih edilmektedir.
Yii1 Array Syntax
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'urlSuffix'=>'.html',
'rules'=>array(
),
),
Yii2 Array Syntax
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => [
],
],
Short echo-Kısa echo Yazımı
Her iki yazım şeklide çalıştırılabilir fakat PHP 5.4' den sonra güvenlik nedenlerinden dolayı, önceden kullanılan echo
syntax'ı yerine tercih ediliyor. Örneğin:
//Yii1:
<?php echo Url::base();?>
//Yii2:
<?= Url::base();?>
6-Composer Kullanımı
Yii2 Framework kurulum işlemlerinde Composer yardımıyla kurulum işlemi gerçekleştirildiği gibi extension gibi 3.parti yazılımların yüklenmesinde de Composer’i oldukça sık kullanacağız.
7-Fonksiyonların Yazımı ve Kullanımı
Yii2 ile birlikte kullanılan fonksiyonların yazım şekilleri de değişmiştir. Örneğin:
//Yii1
<?php echo Yii::app()->controller->id;?>
//Yii2
<?=Yii::$app->controller->id;?>
//Yii1
<title><?php echo CHtml::encode($this->pageTitle);?></title>
//Yii2
<title><?=Html::encode($this->title);?></title>
Yii2 Framework ile beraber directory-dizin yapısı değiştiği için path-alias yazımları da aşağıda ki gibi olmuştur.
@yii
@app
@common
@frontend
@backend
@console
@runtime
@vendor
@bower
@npm
@web
@webroot