Yii 2 Projesi Oluşturun ve Çalıştırın
Yii 2 Nedir?
Yii 2, modern Web uygulamaları geliştirmek için yüksek performanslı bir PHP framework'üdür. Model-View-Controller (MVC) tasarım modelini takip eder ve zengin özellikler ve araçlar seti sunar, böylece geliştiriciler hızlı bir şekilde yüksek kaliteli Web uygulamaları oluşturabilirler. Yii 2, verimli, esnek ve genişletilebilir özelliklere sahiptir, bu da onu birçok geliştiricinin tercih ettiği bir framework yapar.
Yii 2’nin Ana Özellikleri ve Avantajları
- Yüksek Performans: Yii 2 yüksek performanslı bir framework olup, yüksek trafik taleplerini karşılayabilir.
- Modülerlik: Zengin modüller ve eklentiler sunar, genişletme ve özelleştirme işlemlerini kolaylaştırır.
- Güvenlik: Giriş doğrulama, çıkış filtresi, CSRF koruması gibi yerleşik birçok güvenlik özelliği vardır.
- Kullanım Kolaylığı: Basit ve kullanımı kolay API ve zengin belgeler sunar, geliştiriciler hızlı bir şekilde başlayabilirler.
- Güçlü Topluluk Desteği: Aktif bir geliştirici topluluğu ve zengin üçüncü taraf eklentilere sahiptir.
Yii 2, geliştiricilerin yüksek performanslı, yüksek kaliteli Web uygulamaları hızla oluşturmalarına yardım eder ve farklı ölçeklerdeki projeler için uygundur.
ServBay Kullanarak Yii 2 Projesi Oluşturun ve Çalıştırın
Bu makalede, ServBay'in sunduğu PHP ortamını kullanarak bir Yii 2 projesi oluşturup çalıştırmayı göstereceğiz. ServBay'in ‘host’ işlevini kullanarak Web sunucusunu kuracağız ve basit bir yapılandırmayla proje erişimini sağlayacağız.
Dikkat: Eğer daha önce NGINX veya Apache Kullanıcısıydanız
ServBay varsayılan olarak Caddy'yi Web sunucusu olarak kullanır. NGINX ve Apache'den ServBay'e geçiş yapan kullanıcılar için dikkat edilmesi gereken bazı önemli değişiklikler şunlardır:
Caddy Yapılandırması
ServBay otomatik olarak Caddy'yi dahil eder ve varsayılan yapılandırma optimize edilip debug edilmiştir. Geliştiriciler, Caddy yapılandırma dosyalarını manuel olarak değiştirmeden ServBay'in ‘host’ işlevi aracılığıyla siteleri yönetebilirler.
Rewrite Kuralları ve .htaccess
NGINX ve Apache'de, geliştiriciler genellikle URL yeniden yazma ve diğer yapılandırmalar için rewrite kuralları ve .htaccess dosyaları yazmak zorundadırlar. Ancak ServBay, Caddy'nin kurallarını varsayılan olarak yapılandırdığı için, özel ihtiyaçlar olmadığı sürece geliştiriciler bu kuralları yazmak zorunda kalmazlar.
Daha Fazla Bilgi Edinin
Daha fazla bilgi için Rewrite ve htaccess, Apache Web Sitesini ServBay'e Taşımak ve NGINX Web Sitesini ServBay'e Taşımak bölümlerine göz atabilirsiniz.
Yii 2 Projesi Oluşturun
TIP
ServBay, geliştiricilere sitelerini yönetimi kolay olması açısından /Applications/ServBay/www
dizininde konumlandırmalarını önerir.
Composer Kurulumu
ServBay varsayılan olarak Composer'ı dahil eder ve ayrı bir kurulum gerektirmez.
Yii 2 Projesi Oluşturma
Composer kullanarak yeni bir Yii 2 temel uygulama şablonu projesi oluşturun:
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app composer create-project --prefer-dist yiisoft/yii2-app-basic .
1
2
3
4Proje Dizini İçine Girin
Yeni oluşturulan Yii 2 proje dizinine geçin:
bashcd /Applications/ServBay/www/servbay-yii2-app
1
Başlangıç Yapılandırması
Veritabanı Bağlantısını Yapılandırma
config/db.php
dosyasında veritabanı bağlantısı bilgilerini yapılandırın:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Önbellek ve Redis Bileşenini Yapılandırma
config/web.php
dosyasında önbellek ve Redis bileşeninin yapılandırmasını ekleyin:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Web Sunucusunu Yapılandırma
ServBay'in ‘host’ işlevini kullanarak, Web sunucusu aracılığıyla Yii 2 projesine erişin. ServBay'in ‘host’ ayarlarında, yeni bir host ekleyin:
- Ad:
My First Yii 2 Dev Site
- Alan Adı:
servbay-yii2-test.local
- Web Site Türü:
PHP
- PHP Versiyonu:
8.3
seçin - Web Site Kök Dizini:
/Applications/ServBay/www/servbay-yii2-app/web
Detaylı ayar adımları için İlk Web Sitesini Ekleme bölümüne bakabilirsiniz.
Örnek Kod Ekleme
controllers/SiteController.php
dosyasına aşağıdaki kodu ekleyin:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionMemcached()
{
$cache = Yii::$app->cache;
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->asText($value);
}
public function actionRedis()
{
$redis = Yii::$app->redis;
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->asText($value);
}
public function actionMysqlAdd()
{
Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->asText('User added');
}
public function actionMysql()
{
$users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll();
return $this->asJson($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
views/site/index.php
dosyasına aşağıdaki kodu ekleyin:
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii2 Application';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Tebrikler!</h1>
<p class="lead">Başarıyla Yii2 uygulamanızı oluşturdunuz.</p>
</div>
</div>
2
3
4
5
6
7
8
9
10
Web Sitesine Erişin
Tarayıcınızı açın ve aşağıdaki URL'leri ziyaret edin:
https://servbay-yii2-test.local
: Varsayılan Yii 2 hoş geldiniz sayfasını göreceksiniz.
NoSQL Veritabanı Örnekleri
Memcached Örneği
Memcached Uzantısını Kurma
ServBay'de Memcached uzantısı zaten önceden yüklenmiştir, ekstra bir kurulum gerekmez.
Memcached Yapılandırma
config/web.php
dosyasında Memcached bağlantı bilgilerini yapılandırın:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13Memcached Kullanımı
Denetleyicinizde önbelleği kullanın:
phppublic function actionMemcached() { $cache = Yii::$app->cache; $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Redis Örneği
Redis Uzantısını Kurma
ServBay'de Redis uzantısı zaten önceden yüklenmiştir, ekstra bir kurulum gerekmez.
Redis Yapılandırma
config/web.php
dosyasında Redis bağlantı bilgilerini yapılandırın:php'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9Redis Kullanımı
Denetleyicinizde önbelleği kullanın:
phppublic function actionRedis() { $redis = Yii::$app->redis; $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
İlişkisel Veritabanı Örnekleri
Veritabanı Yapısı ve Göç Dosyaları Oluşturma
Göç Dosyası Oluşturma
Yii 2'nin Gii aracını kullanarak göç dosyası oluşturun:
bashphp yii migrate/create create_users_table
1Göç Dosyasını Düzenleme
migrations
dizininde yeni oluşturulan göç dosyasını bulun ve veritabanı tablo yapısını tanımlamak için düzenleyin:phppublic function up() { $this->createTable('users', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); }
1
2
3
4
5
6
7
8
9
10Göçü Çalıştırma
Yii 2'nin göç komutunu kullanarak göçü çalıştırın ve veritabanı tablosunu oluşturun:
bashphp yii migrate
1
MySQL Örneği
MySQL Yapılandırma
config/db.php
dosyasında MySQL bağlantı bilgilerini yapılandırın:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Kullanıcı Verilerini Yazma
Denetleyicinizde kullanıcı verilerini yazın:
phppublic function actionMysqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8MySQL Kullanımı
Denetleyicinizde veritabanını çağırın:
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
PostgreSQL Örneği
PostgreSQL Yapılandırma
config/db.php
dosyasında PostgreSQL bağlantı bilgilerini yapılandırın:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Kullanıcı Verilerini Yazma
Denetleyicinizde kullanıcı verilerini yazın:
phppublic function actionPgsqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8PostgreSQL Kullanımı
Denetleyicinizde veritabanını çağırın:
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Yukarıdaki adımları takip ederek bir Yii 2 projesini başarıyla oluşturmuş ve çalıştırmış olacaksınız. Ayrıca, ServBay'in sunduğu işlevlerle projenizi yönetip erişebilecek ve çeşitli veritabanları ile veri alışverişi yapabileceksiniz. Umarım bu makale, Yii 2'yi hızlıca öğrenip projelerinize uygulamanızda yardımcı olur.