Yii2 Framework

Standard

Herkese Selam,

Yii2 nin en güzel yanlarından birisi de composer ile kurulum yapılabiliyor olması. Bootstrap default olarak içinde gelmekte.

yii ile ilgili olarak önceki yazdığım makalelere göz gezdirmek isterseniz:

Yii2 ye gelince Kurulum için 2 yol var. composer ile otomatik kurulum yapacaksınız veya manuelk kurulum.(Yii2 yi kendi dizininize kopyalayarak)

Şu an basic ve advanced olmak üzere 2 adet örnek uygulaması mevcut yii nin. Bunlardan birisini kurabilirsiniz.

php 5.4 ve üzeri sürüm olduğuna emin olun bilgisayarınızda.

Basic uygulama kurulumu hakkında yii2 nin sitesindeki anlatım:
http://www.yiiframework.com/doc-2.0/guide-apps-basic.html
Yii nin kendi içindeki basic readme.md dökümanı ve gelişmiş örnek için advanced readme.md dökümanına da göz gezdirebilirsiniz.

Yabancı dili yeterli olmayanlar için sadece composer ile basit app kurulumuna kısacık değineceğim.

Terminalimizi açtıktan sonra Composer kurulu değilse composer kuralım:

curl -s http://getcomposer.org/installer | php

Daha sonra uygulamamızı kurabiliriz

php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic /uygulama/adresi/onur-yii-test

Bu arada requirements.php dosyasından bakabilirsiniz sistem gereksinimlerini karşılayıp karşılayamadığınıza..

Kurulum işlemi bittiğine göre kabaca active record, query builder vs. özelliklerine kısaca değinelim..

Yii2 Query Class : SQL Queries

Query sınıfını kullanmadan önce namespace eklemek zorundayız.

use yii\db\Query;
$connection = \Yii::$app->db;

Query Sınıfı içinde göreceğimiz madde başlıkları

  • findBySql()
  • queryAll()
  • queryOne()
  • queryColumn()
  • Query – Prepared Statements()
  • Query Class

findBySql

Örnek 1:

$sql = 'SELECT * FROM tbl_user';
$model = User::findBySql($sql)->all();

Örnek 2:

$sql = 'SELECT * FROM tbl_user';
$model = User::findBySql($sql)->one();

QueryAll

$model = $connection->createCommand('SELECT * FROM tbl_user');
$users = $model->queryAll();

QueryOne

$model = $connection->createCommand("SELECT * FROM tbl_user where userid=$id");
$users = $model->queryOne();

queryColumn

$model = $connection->createCommand('SELECT username FROM tbl_user');
$users = $model->queryColumn();

queryScalar

$model = $connection->createCommand('SELECT COUNT(*) FROM tbl_user');
$users_count = $model->queryScalar();

prepared Statements ile Query

Query yazacaksanız kullanmanızı şiddetle öneririm aksi halde pdo kullanmanın mantığı kalmıyor zaten, sql injection a açık olursunuz.

$user = $connection->createCommand('SELECT * FROM tbl_user WHERE userid=:userid');
$user->bindValue(':userid', $_GET['userid']);
$model = $user->query();

Query Class

Örnek 1:

$query = new Query;
$query->select('userid, username')
    ->from('tbl_user')
    ->limit(10);
$data = $query->all();

Örnek 2:

$query = new Query;
$columns = [];
$columns[] = 'userid';
$columns[] = 'username';

$query->select($columns)
    ->from('tbl_user')
    ->limit(10);
$data = $query->all();

Aslında asıl yii gücünü bu şekilde değil modeller ile çalışırken görebilirsiniz.

Zamanım çok kısıtlı olduğu için bu kadar oldu,geniş zamanda yii2 hakkında başka konulara da değineceğim.

İyi çalışmalar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir