Merhaba arkadaşlar, bu makalede CodeIgniter ile Composer kullanımına değineceğim.
Composer paket yöneticisi hakkında bilgi sahibi değilseniz veya Composer kurulu değilse önce Php Composer Nedir ? Nasıl Kurulur ? Nasıl Kullanılır ? başlıklı makalemden detaylı bilgi edinebilir ve kurabilirsiniz.
CodeIgniter projenizde composer.json doyası yoksa öncelikle dosyayı oluşturmamız gerekiyor. Örnek json içeriği aşağıdaki gibi olabilir.
1 2 3 4 5 |
{ "require": { "php": ">=5.3.7" } } |
Bu en basit halidir. Sadece ihtiyacımız olan paketleri kurabilmemiz için yeterlidir. Eğer bunun dışında dev-require
ve diğer bölümlerine de ihtiyacınız varsa ve bu konuda tecrübeli biriyseniz ihtiyacınıza uygun gerekli eklemeleri yapabilirsiniz.
Bu hali çok basit geldi. Ben CodeIgniter ile varsayılan olarak gelen halini istiyorum diyorsanız aşağıdaki kodları kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
{ "description": "The CodeIgniter framework", "name": "codeigniter/framework", "type": "project", "homepage": "https://codeigniter.com", "license": "MIT", "support": { "forum": "http://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", "slack": "https://codeigniterchat.slack.com", "source": "https://github.com/bcit-ci/CodeIgniter" }, "require": { "php": ">=5.3.7" }, "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "require-dev": { "mikey179/vfsStream": "1.1.*", "phpunit/phpunit": "4.* || 5.*" } } |
Projenizin kök dizininde composer.json
dosyası oluşturarak yukarıdaki kodlardan birini içine yapıştırıp kaydedin. Ardından ilk komutu çalıştırarak kurulumu başlatın.
1 |
composer install |
Kurulum tamamlandıktan sonra projenizin kök dizininde vendor
adında bir klasör oluşacaktır. Composer ile çağrılan tüm paketler bu klasör içinde toplanır.
Kurulumun ardından Composer paketlerinin projede kullanılabilmesi için onları include etmemiz gerekiyor. Her birini tek tek include edemeyeceğimiz için autoloader dosyasını include ediyoruz. Bunun için projenin kök dizinindeki index.php
dosyasını açıyoruz.
Dosya ortalama 300 satırdan oluştuğu için sadece son satırlarını ekledim. Diğer satırlarla bir işimiz yok.
1 2 3 4 5 6 7 8 |
/* * -------------------------------------------------------------------- * LOAD THE BOOTSTRAP FILE * -------------------------------------------------------------------- * * And away we go... */ require_once BASEPATH.'core/CodeIgniter.php'; |
Dosyanın en altına geldiğiniz zaman require_once BASEPATH.'core/CodeIgniter.php';
satırının hemen üstüne include_once './vendor/autoload.php';
satırını ekliyoruz. Sonuç olarak kodumuz şu şekilde oluyor.
1 2 3 4 5 6 7 8 9 |
/* * -------------------------------------------------------------------- * LOAD THE BOOTSTRAP FILE * -------------------------------------------------------------------- * * And away we go... */ include_once './vendor/autoload.php'; require_once BASEPATH.'core/CodeIgniter.php'; |
Böylelikle Composer ile CodeIgniter birlikte kullanılabilir hale gelmiş oluyor.
Şimdi örnek bir paket ile deneme yapabiliriz. Ben deneme amacıyla diğer projelerimde sık sık kullandığım Agent paketini kuracağım. Bunun için 2 farklı yol mevcut. Bunlardan ilki composer.json
dosyasını açıp require kısmına
veya dev-require
kısmına paketin adını ve versiyonunu yazmak, diğeri ise hiç bununla uğraşmadan doğrudan son sürümü veya ilgili sürümü çağıracak şekilde komut çalıştırmaktır. Ben kolaylığı açısından genelde komut çalıştırmayı tercih ediyorum.
1 |
composer require jenssegers/agent |
Komut satırında projemizin kök dizinine geldikten sonra yukarıdaki komutu çalıştırarak kurulumun hızlıca gerçekleştiriyoruz. Artık paket kullanıma hazırdır.
Eğer komutla versiyon bilgisi girerek veya daha gelişmiş şekilde nasıl kuracağınızı öğrenmek istiyorsanız Gelişmiş Composer Örnekleri başlıklı makalemi inceleyebilirsiniz.
Son olarak kurduğumuz paketi deneyelim. Bunun için application/controllers
içindeki Welcome.php
dosyasını açalım. Sizin dosyanızın içeriği daha farklı olabilir. Belki ilerlemiş bir projeye kurulum yapmış olabilirsiniz. Ben en basitinden index içine 2 satır ekleyerek örneklendirdim. Siz de kendi projenizi bozmayacak şekilde uygun bir yere yazarak deneyebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $agent = new \Jenssegers\Agent\Agent(); echo $agent->getUserAgent(); } } |
1 |
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 OPR/49.0.2725.64 |
Eğer kurulumla ilgili herhangi bir adımda takılırsanız yorum kısmından sorunu anlatırsanız çözüm bulmanızda yardımcı olabilirim.
İlk Yorumu Siz Yapın