Slim Projesi Oluşturma ve Çalıştırma
Slim Nedir?
Slim, hızlı ve güçlü web uygulamaları ve API'ler oluşturmak için tasarlanmış hafif bir PHP mikro çerçevesidir. Temel yönlendirme, istek işleme ve yanıt işleme işlevleri sağlar ve hızlı geliştirilmeye ve dağıtılmaya ihtiyaç duyulan projeler için uygundur.
Slim'in Temel Özellikleri ve Avantajları
- Hafif: Slim çerçevesi çok küçüktür ve küçük ve orta ölçekli uygulamalar oluşturmak için uygundur.
- Esneklik: Herhangi bir üçüncü taraf bileşeni veya kütüphanesiyle entegre edilebilir, büyük bir esneklik sağlar.
- Kullanım Kolaylığı: Basit API ve net belgeler ile geliştiricilerin hızlı bir şekilde başlamasını sağlar.
- Güçlü Yönlendirme Yeteneği: Farklı HTTP yöntemlerini ve karmaşık yönlendirme yapılandırmalarını destekler.
- Orta Katman Desteği: İstekleri ve yanıtları işlemek için kolayca orta katman eklenebilir.
Slim, RESTful API'ler oluşturmak ve hızlı prototip geliştirme için ideal bir seçenektir.
ServBay Aracılığıyla Slim Projesi Oluşturma ve Çalıştırma
Bu makalede, PHP ortamı sağlayan ServBay kullanarak bir Slim projesi oluşturacak ve çalıştıracağız. Web sunucusunu kurmak için ServBay'in 'ana bilgisayar' işlevini kullanacağız ve basit bir yapılandırma ile projeye erişim sağlayacağız.
Dikkat: Daha önce NGINX veya Apache kullanıcısıysanız
ServBay varsayılan olarak Caddy kullanır. NGINX ve Apache'den ServBay'e geçiş yapıyorsanız, dikkat etmeniz gereken bazı önemli değişiklikler vardır:
Caddy Yapılandırması
ServBay, Caddy'yi yerleşik olarak sağlar ve varsayılan yapılandırma optimize edilmiştir. Geliştiriciler, ServBay'in 'ana bilgisayar' işleviyle siteyi yönetebilir, Caddy yapılandırma dosyasını manuel olarak değiştirmeye gerek yoktur.
Yeniden Yazma Kuralları ve .htaccess
NGINX ve Apache'de geliştiriciler genellikle URL yeniden yazımı ve diğer yapılandırmaları yönetmek için kendileri yeniden yazma kuralları ve .htaccess dosyaları yazarlar. Ancak, ServBay, Caddy'nin kurallarını önceden yapılandırmıştır, bu nedenle özel bir talep olmadıkça geliştiricinin bu kuralları kendisinin yazmasına gerek yoktur.
Daha Fazla Bilgi
Daha fazla bilgi için Yeniden Yazma ve htaccess, Apache Web Sitesi Nasıl ServBay'e Taşınır, NGINX Web Sitesi Nasıl ServBay'e Taşınır belgelerine bakılabilir.
Slim Projesi Oluşturma
TIP
ServBay, geliştiricilerin web sitelerini ['/Applications/ServBay/www'] dizinine yerleştirmelerini önerir.
Composer Yükleme
ServBay, Composer'i zaten içerir, ayrı bir yükleme yapmaya gerek yoktur.
Slim Projesi Oluşturma
Composer kullanarak yeni bir Slim projesi oluşturun:
bashcd /Applications/ServBay/www mkdir servbay-slim-app cd servbay-slim-app composer require slim/slim "^4.0" composer require slim/psr7 -W
1
2
3
4
5Proje Dizine Gir
Yeni oluşturulan Slim proje dizinine girin:
bashcd /Applications/ServBay/www/servbay-slim-app
1
Başlangıç Yapılandırması
Giriş Dosyası Oluşturma
Proje kök dizininde 'public/index.php' dosyası oluşturun ve aşağıdaki kodu ekleyin:
php<?php require __DIR__ . '/../vendor/autoload.php'; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Factory\AppFactory; $app = AppFactory::create(); $app->get('/', function (Request $request, Response $response, $args) { $response->getBody()->write("Hello ServBay!"); return $response; }); $app->run();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Web Sunucusu Yapılandırması
ServBay'in 'ana bilgisayar' işlevini kullanarak Slim projesine web sunucusu aracılığıyla erişin. ServBay'in 'ana bilgisayar' ayarlarında yeni bir ana bilgisayar ekleyin:
- İsim:
My First Slim Dev Site
- Alan Adı:
servbay-slim-test.local
- Web Sitesi Türü:
PHP
- PHP Sürümü:
8.3
seçin - Web Sitesi Kök Dizini:
/Applications/ServBay/www/servbay-slim-app/public
Detaylı adımlar için İlk Web Sitesi Ekleme belgesine bakabilirsiniz.
Örnek Kod Ekleme
'public/index.php' dosyasına aşağıdaki kodu ekleyin, "Hello ServBay!" yazısını çıktılayacaktır:
$app->get('/', function (Request $request, Response $response, $args) {
$response->getBody()->write("Hello ServBay!");
return $response;
});
2
3
4
Web Sitesine Erişim
Tarayıcınızı açın ve https://servbay-slim-test.local
adresine gidin, web sayfasında Hello ServBay!
yazısını göreceksiniz.
NoSQL Veritabanı Örneği
Memcached Örneği
Memcached Eklentisi Yükleme
ServBay, Memcached eklentisini önceden yüklemiştir, ek yükleme yapmaya gerek yoktur.
Memcached Yapılandırma
'composer.json' dosyasına Memcached bağımlılığını ekleyin:
json{ "require": { "slim/slim": "^4.0", "memcached/memcached": "^3.1" } }
1
2
3
4
5
6Ardından
composer update
komutunu çalıştırarak bağımlılıkları yükleyin.Rota Yapılandırması
'public/index.php' dosyasına aşağıdaki kodu ekleyin:
php$app->get('/memcached', function (Request $request, Response $response, $args) { $memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211); $cacheKey = 'my_cache_key'; $cachedData = $memcached->get($cacheKey); if ($cachedData === false) { $cachedData = 'Hello Memcached!'; $memcached->set($cacheKey, $cachedData); } $response->getBody()->write($cachedData); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Memcached Kullanımı
Tarayıcınızı açın ve
https://servbay-slim-test.local/memcached
adresine gidin.
Redis Örneği
Redis Eklentisi Yükleme
ServBay, Redis eklentisini önceden yüklemiştir, ek yükleme yapmaya gerek yoktur.
Redis Yapılandırma
'composer.json' dosyasına Redis bağımlılığını ekleyin:
json{ "require": { "slim/slim": "^4.0", "predis/predis": "^1.1" } }
1
2
3
4
5
6Ardından
composer update
komutunu çalıştırarak bağımlılıkları yükleyin.Rota Yapılandırması
'public/index.php' dosyasına aşağıdaki kodu ekleyin:
php$app->get('/redis', function (Request $request, Response $response, $args) { $redis = new Predis\Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, ]); $cacheKey = 'my_cache_key'; $cachedData = $redis->get($cacheKey); if ($cachedData === null) { $cachedData = 'Hello Redis!'; $redis->set($cacheKey, $cachedData); } $response->getBody()->write($cachedData); return $response; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Redis Kullanımı
Tarayıcınızı açın ve
https://servbay-slim-test.local/redis
adresine gidin.
İlişkisel Veritabanı Örneği
Veritabanı Yapısını ve Geçiş Dosyasını Oluşturma
Geçiş Dosyası Oluşturma
Phinx kullanarak geçiş dosyası oluşturun:
bashcomposer require robmorgan/phinx vendor/bin/phinx init
1
2Geçiş Dosyasını Düzenleme
'db/migrations' dizininde yeni bir geçiş dosyası oluşturun ve düzenleyerek veritabanı tablosu yapısını tanımlayın:
phpuse Phinx\Migration\AbstractMigration; class CreateUsersTable extends AbstractMigration { public function change() { $table = $this->table('users'); $table->addColumn('name', 'string') ->addColumn('email', 'string', ['unique' => true]) ->create(); } }
1
2
3
4
5
6
7
8
9
10
11
12Geçişi Çalıştırma
Phinx komutunu kullanarak geçişi çalıştırın ve veritabanı tablosunu oluşturun:
bashvendor/bin/phinx migrate
1
MySQL Örneği
MySQL Yapılandırma
'composer.json' dosyasına MySQL bağımlılığını ekleyin:
json{ "require": { "slim/slim": "^4.0", "illuminate/database": "^8.0" } }
1
2
3
4
5
6Ardından
composer update
komutunu çalıştırarak bağımlılıkları yükleyin.Rota Yapılandırması
'public/index.php' dosyasına aşağıdaki kodu ekleyin:
phpuse Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'servbay_slim_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/mysql-add', function (Request $request, Response $response, $args) { $user = Capsule::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]' ]); $response->getBody()->write('User added'); return $response; }); $app->get('/mysql', function (Request $request, Response $response, $args) { $users = Capsule::table('users')->get(); $response->getBody()->write($users->toJson()); return $response; });
1
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
32Kullanıcı Verilerini Yazma
Tarayıcınızı açın ve
https://servbay-slim-test.local/mysql-add
vehttps://servbay-slim-test.local/mysql
adreslerine gidin.
PostgreSQL Örneği
PostgreSQL Yapılandırma
'composer.json' dosyasına PostgreSQL bağımlılığını ekleyin:
json{ "require": { "slim/slim": "^4.0", "illuminate/database": "^8.0" } }
1
2
3
4
5
6Ardından
composer update
komutunu çalıştırarak bağımlılıkları yükleyin.Rota Yapılandırması
'public/index.php' dosyasına aşağıdaki kodu ekleyin:
phpuse Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'pgsql', 'host' => '127.0.0.1', 'database' => 'servbay_slim_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $app->get('/pgsql-add', function (Request $request, Response $response, $args) { $user = Capsule::table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]' ]); $response->getBody()->write('User added'); return $response; }); $app->get('/pgsql', function (Request $request, Response $response, $args) { $users = Capsule::table('users')->get(); $response->getBody()->write($users->toJson()); return $response; });
1
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
32Kullanıcı Verilerini Yazma
Tarayıcınızı açın ve
https://servbay-slim-test.local/pgsql-add
vehttps://servbay-slim-test.local/pgsql
adreslerine gidin.
Bu adımlarla, ServBay'in sağladığı işlevleri kullanarak Slim projesini başarıyla oluşturmuş ve çalıştırmış oldunuz. Ayrıca, farklı veritabanlarına bağlandınız ve veri çağrısı yaptınız.