Linux Arch & Manjaro CodeIgniter Kurulumu

CodeIgniter kurulumunda GitHub üzerinden ya da resmi siteden son sürümü indirdiğinizde ve çalıştırdığınızda sizi bir Welcome ekranı karşılayacaktır. Bu ekranı gördüğünüzde sorunsuz çalıştığını varsayabilirsiniz; tabii bir Arch&Manjaro kullanıcısı değilseniz. Eğer ki sistem dili Türkçe olan Linux Arch ya da bir Manjaro kullanıcısı iseniz; muhtemelen CodeIgniter ya da ZN Framework çalışmayacaktır.  Bunun nedeni PHP’nin standart str fonksiyonlarının çalışmamasıdır. Konunun başlığını bu şekilde belirledim çünkü sorunun kaynağını bilen birisi zaten çözüme de rahatlıkla ulaşabilir. Önemli olan sorunun nereden kaynaklandığını bilemeyen arkadaşları konuya çekebilmek. Gerekli hata kodları etiket olarak dahil edilmiştir.

Şöyle anlatmak gerekirse $this-uri->segment(1) ve $this->input->get('q') kodları hata verecektir. Burada dikkat ettiğiniz bir nokta var mı? Evet, bildiniz! Burada this anahtarı ile eriştiğimiz sınıf özelliklerinin ikisinde de i harfi bulunmakta. Peki, bununla ne ilgisi var? Öncelikle şurada bu konu ile ilgili açılmış bir bug report bulunmakta. Ona göz atmanızı rica ediyorum. Şimdi biraz daha oturdu gibi konu. Bir dizi içerisinde URI ya da INPUT anahtarı ilgili PHP fonksiyonlarınca küçültülmek istenilmektedir. Fakat bunu başaramaz ve bu anahtarlar bize urI ve Input olarak döner ve hata verir.

Olası Hata Çıktıları:

Yukarıdaki hatalardan normal zamanlarda bir çözüm yolu aransaydı $this->load->helper('uri'); satırını Controller dosyamıza dahil etmeyi düşünürdük. Bu tarz bir hatanın olabileceğini kimse düşünemezdi.

Çözüm Yolları:

Linux sistem dilinde bu tarz dönüşüm ve işlemlerin kontrol merkezinde CTYPE bulunmakta. Bizler, CTYPE‘ı en_US.UTF8  yaparsak bu sorun çözülecektir.

Bir diğer çözüm yolu ise en_US.UTF8  yüklü olmak koşulu ile; LC_CTYPE veya LC_ALL değerini değiştirerek de sorun çözülebiliyor.

Ek Olarak:

Çözümde benimle birlikte uğraş veren AnkaraPHP ekibine ve Eray Aydın’a teşekkürlerimi iletiyorum.

Kaynak:

  • https://wiki.archlinux.org/index.php/locale

CodeIgniter 3 Template Yapısı

CodeIgniter öğrenmeye yeni başladığım sıralarda template yapısına gerek duymamıştım fakat blog sistemi yazmaya karar verdiğimde ne kadar elzem bir ihtiyaç olduğunu anlamam uzun sürmedi. Birkaç döküman ve video taramasından sonra amacıma ulaştım. Bu konuda pek Türkçe kaynak olmamasından mütevellit blogumda paylaşmaya karar verdim. Olay şöyle ki;

Öncelikle kütüphanemizi oluşturalım. CodeIgniter dizininde libraries klasöründe “TempK” isminde bir PHP dosyası oluşturalım.

TempK

Yukarıda yer alan kodlarımızda, template klasörümüzde bulunan header.php, sidebar.php, footer.php ve content klasöründe bulunan dosya ismi dinamik olan home.php dosyamıza veri gönderelim. En alt satırda da index.php dosyamızda gösterelim.

Template

View klasörümüzün içerisine Template isminde bir klasör daha oluşturalım ve içerisinde header.php, sidebar.php, footer.php ve index.php dosyaları oluşturalım.

Footer

Header

Sidebar

Index

Content

Template yapımızda içerik kısmımızda yer alacak PHP dosyalarını oluşturalım. Ben, single.php ve home.php olarak iki farklı sayfa oluşturdum.

Home

Single

Controllers

Şimdi de controller için kodlarımızı yazalım. Template isminde bir PHP dosyası oluşturuyorum.

Sonuç

Genel anlamda yapımız bu şekilde. template/index‘e ya da template/single adreslerine baktığımızda başarılı bir şekilde çalıştığını görebilirsiniz. Bu şekilde devam ettiğinizde temeli sağlam bir yapı çıkartabilirsiniz.

Paylaşın, sevin, mutlu olun.

CodeIgniter 3 Insert Kullanımı

CodeIgniter ile veritabanına veri ekleme işlemini gerçekleştirelim. Öncelikle models klasörümüzde YeniProje isminde bir PHP dosyası oluşturalım. Dosyanın içerisine aşağıda yer alan kodları yazalım.

models/YeniProje

CodeIgniter üzerinde kullanılan insert fonksiyonunda birinci parametre işlem yapmak istediğimiz tablo ismi, ikincisi ise verilerimizi gönderdiğimiz dizi değişkenimizdir. Hemen alt satırında yaptığımız if bloğunda da işlem hakkında çıktı alabiliyoruz.

controllers/Uygulama

Uygulama dosyamızda ise insert isminde bir fonksiyon oluşturduk ve Model dosyamızdan gelen işlem mekanizmamızı tanımladık.

Tarayıcımızda, localhost/index.php/uygulama/insert adresini çalıştırdığımızda işlemin başarılı olduğunu görebilirsiniz.

CodeIgniter 3 Giriş

Yakın zamanda PHP ile dinamik web uygulamaları geliştirmeye olanak sağlayan; çatı projesi CodeIgniter kullanmaya başladım. Ben de bu fırsatı değerlendirerek her zaman olduğu gibi; bilginin paylaşılmasına katkıda bulunmaktan ve buna aracı olmaktan duyduğum zevki CodeIgniter dersleri paylaşarak saçmaya karar verdim. Bu yazıyı okumadan önce muhtemelen diğer betiklerde yer alan standart tanımları okudunuz. Ben biraz onlardan kaçınarak biraz da samimiyetin verdiği içtenlikle farklı bir şekilde giriş yapmayı uygun gördüm.

CodeIgniter, günümüzde çok yaygın biçimde kullanılmaktadır. Birçok projenin mimarisini oluşturmaktadır. Geliştirici kişiye en önemli katkılarından birisi de hiçbir zaman bir başka yazılımcının kodladığı esere soru işaretleri ile bakmasına gerek kalmayacak olmasıdır. Sözün özü: takım çalışmasına uydundur efendim. CI çatısı ile projeler geliştirebilmek için bir PHP geçmişinizin olması kaçınılmaz. Bu konuda kendinizi yetersiz hissediyorsanız sizi şöyle alalım: bkz: php dersleri

CodeIgniter çatısında kullanılan MVC tasarım deseni bizleri iç içe girmiş metin tabanlı dillerin karmaşıklığından kurtarmakta. ModelViewController  üçlüsü bu açıdan hayati bir zemin sağlamaktadır. bkz: mvc nedir?

Blogumda yayınlayacağım CodeIgniter derslerini bölümler halinde yazmayı düşünüyorum. Ve hatta serinin sonunda paylaştığım tüm dersleri bir blog sistemi yazarak pekiştirelim, tamamlayalım. Yazıları, yayınlamaya hazır taslaklar haline getirmeden fazla iddialı planlar yapıp Tanrı’yı güldürmeden sizlere veda edeyim.

Paylaşın, sevin, mutlu olun.