Berker Peksağ.

"kohana" etiketine sahip yazılar:

13 Haziran 2010, Pazar

Kohana'ya katkıda bulunmak için geliştirme ortamının hazırlanması

Saat: 22:20:18

Kohana, geliştirilmesine CodeIgniter fork'u olarak başlanıp 3.x versiyonuyla beraber en baştan yazılan popüler bir PHP framework'üdür.

Bu yazıda, Kohana projesine katkıka bulunmak için bir geliştime ortamının hazırlanmasını anlatacağım.

Yazıyı, temel seviyede Git ve GNU/Linux bilginizin olduğunu varsayarak hazırladım.

Kohana, Github üzerinden geliştiriliyor. Bundan sonra sık sık kullanacağımız issue list ise Kohana'nın kendi web sitesinde görülebilir.

İlk iş olarak Kohana için bir klasör oluşturup, Git'i aktive edelim:

mkdir kohana/
git init

kohana/ klasörünü yazdığımız kodları uygulama üzerinde denemek/geliştirmek gibi amaçlar için kullanacağız.

Şimdi asıl geliştirme yapacağımız çekirdek kodları eklemeye geldi. Devam etmeden önce, Github hesabınızdan github.com/kohana/core projesini fork etmelisiniz.

Github üzerinde fork'unuzu oluşturduktan sonra, bu depoyu klonlayacağız:

git clone git@github.com:berkerpeksag/core.git system

Burada, göreceğiniz üzere sizin forkunuzunu klonladık. Şimdi, ana depodaki güncellemeleri çekip, bizim güncellemelerimizle birleştirmek, kısacası depoyu güncel tutmak için hayati öneme sahip remote ayarlarını yapacağız:

git remote add upstream git://github.com/kohana/core.git
git fetch upstream

Eğer her şey yolunda gittiyse, aşağıdaki gibi bir çıktıyla karşılaşmalısınız:

berkerpeksag@berkerpeksag:/var/www/kohana/system$ git fetch upstream
From git://github.com/kohana/core

* [new branch] inline_route_regex -> upstream/inline_route_regex
* [new branch] master -> upstream/master
* [new branch] testing -> upstream/testing
* [new branch] text_binary -> upstream/text_binary
* [new branch] text_number -> upstream/text_number
* [new branch] unstable -> upstream/unstable

Gördüğünüz gibi tüm branchler oluşturuldu. Şimdi Git index'ini güncelleyip değişiklikleri commit edebiliriz:

git add .
git commit -m “Cekirdek kodlari eklendi.”

Asıl işi yaptıktan sonra sırada varsayılan Kohana klasör yapısını oluşturacağız. Çoğu Kohana projesinin klasör yapısı aşağıdaki gibidir.

application/
application/cache
application/config
application/views
application/logs
application/classes
application/classes/model
application/classes/controller

Sırasıyla klasörlerimizi oluşturalım:

mkdir -p application/classes/{controller,model}
mkdir -p application/{config,views}

cache/ ve logs/ klasörlerine yazma izni verelim:

mkdir -m 0777 -p application/{cache,logs}

Yine herhangi bir hata almazsanız klasör yapısı aşağıdaki gibi olacaktır. Test etmek için:

berkerpeksag@berkerpeksag:/var/www/kohana$ find application/
application/
application/cache
application/config
application/views
application/logs
application/classes
application/classes/model
application/classes/controller

cache/ ve logs/ klasörleri aksi belirtilmediği sürece çalışma zamanında çeşitli dosyalar oluşturacaklardır. Geliştirme süresince bu dosyalara Git'in ihtiyacı olmayacağı için bunları gözmezlik gelmesini söylemeliyiz:

touch .gitignore
sudo gedit .gitignore

İçerik olarak aşağıdaki şekilde doldurup kaydedip, kapatalım:

application/cache/*
application/logs/*

Şimdi proje için gerekli diğer dosyaları indirelim:

wget http://github.com/kohana/kohana/raw/master/index.php
wget http://github.com/kohana/kohana/raw/master/application/bootstrap.php -O application/bootstrap.php
wget http://github.com/kohana/kohana/raw/master/application/classes/controller/welcome.php -O application/classes/controller/welcome.php
wget http://github.com/kohana/kohana/raw/master/example.htaccess -O .htaccess

Evet, işimiz bitti ve değişiklikleri Git'e bildirip commit edebiliriz:

git add .
git commit -m “Klasor yapisi olusturuldu.”

Artık, application/bootstrap dosyasından gerekli ayarları yapıp, projeye katkıda bulunmaya başlayabilirsiniz.

Eşleme

Geliştirme süresince, kendi kodunuzu ana proje ile sürekli eş tutmanız gerekecek. Bunun için aşağıdaki bash betiğini kullanabilirsiniz:

Kullanmak için:

sudo chmod +x sync.sh

komutunu uygulamanız yeterli.

 

1 yorum yapılmış.


08 Kasım 2009, Pazar

Yeni tasarım ve format üzerine

Saat: 02:47:43

Yine uzun süredir yazamasam da bu sefer zamanı iyi kullanamamın veya tembelliğimin arkasına sığınmıyorum :) Efendim, kısa süre içerisinde blogun tasarımı, altyapısı ve içeriğinde büyük değişiklikler olacak. En önemlisi, İngilizce yazılarımı da yayımlamaya başlayacağım. Aslında format konusunda hala kararsızım: Blog içerisinde Türkçe ve İngilizce yazıları kategorilere ayırmakla, yeni bir sub domain oluşturma arasında gidip geliyorum. Hatta, -eğer okuyan varsa- görüşlerinizi almak isterim.

Gelelim işin teknik kısmına: Ofisteki yoğunluğumun azalması ve zamanımı daha iyi kullanmaya başlamamla kişisel projelerime ayırdığım zaman da artmış oldu. Böylece sadece blogun tasarımını değil altyapısını da tekrardan kodlamaya başladım. Bu sefer kendi basit(ve yetersiz) framework'üm yerine Kohana'yı kullanıyorum. Aslında birçok projede CodeIgniter kullanıyordum ama arkasında bir şirket olması özellikle patch gönderiminde ve kabul ettirmede epey dezavantaja dönüşüyor. Kohana tercihimin en önemli sebeplerinden birisi de bu aslında - ki önümüzdeki günlerde birkaç şey yazmak istiyorum bu konuyla alakalı.

Şu ana kadar DOM(Document Object Model) başlıklı makalem -yeri gelmişken bu makaleyi de yeniden yazdığımı ve içeriğini genişlettiğimi de belirteyim :)- haricinde planladığım kadar detaylı döküman yazamadım ama bu aralar HTML5 ve CSS3 hakkında epey detaylı iki makale hazırlıyorum. Yeni konseptle beraber bu içeriği de ayrı bir bölüme alacağım. Böylece, mevcut yapıdaki en büyük sıkıntım olan içeriği sınıflandıramama sorununu da halletmiş olacağım. Lab bölümüne, projelere ek olarak küçük kod parçalarım için küçük bir bölüm eklemeyi planlıyorum. Böylece, günlük bölümünü biraz daha "günlük" formatına çevirmiş olacağım.

4 yorum yapılmış.



Ne yapıyorum? (twitter)

 

Son yorumlar


Sık kullanılanlar


Projeler


Takip ettiklerim


En son dinlediklerim (last.fm)

 

(c) Berker PEKSAĞ. 2004-2009

Yayımlanan yazılar, kaynak gösterildiği müddetçe kullanılabilir.
Yapılan yorumların sorumluluğu yazarına aittir.