Hackathon Ardından

Merhaba arkadaşlar geçen hafta katıldığım Hackathon ardından nasıl geçtiği ve kazandığım tecrübeleri paylaşmak istedim. Öncelikle Hackathon nedir bundan biraz bahsedeyim. Facebook bir çok ürününü Hackathon’lar sayesinde ortaya çıkarmıştır yani bir gecelik hazırlanan projelerdir. Hackathon’nun temel prensibi 24 saat veya etkinliği düzenleyen organizasyona bağlı değişebilen saat dilimi arasında sıfırdan bir proje yapmaktır. Benim katıldığımda ise 42 saatti bu saat aralığında bütün yeme içme organizasyon tarafından karşılandı. Öncelikle Hackathon insanlar arasındaki iletişimi geliştirmenize yardım ediyor oraya hiç tanımadığınız insanlar geliyor ve sizinle takım arkadaşı olabiliyor veya fikir alışverişi yaparak etkileşime giriyorsunuz.

20150416113401

Tabi verilen saati verimli kullanmak lazım :) 42 saat boyunca takım arkadaşım 4-5 saat uykuyla durdu. Tabi ben o kadar dayanamadım 😀 Hackathon medya uygulaması üzerineydi bizim uygulama fikrimizde herkesin haber paylaşabileceği bir platform oluşturmaktı yarışma sonunda uygulamamız hazır hale geldi son bir cilalama yaptıktan sonra Google Play eklicez. Yarışmada kullandığımız diller Angular JS ve CodeIngiter tabi bunları Ionic Framework ile kullandık. Uygulamanın sonunda 2 dk sunumlar ile uygulamayı tanıttık sunuma hazırlıksız girdiğimiz için biraz sıkıntı oldu. 😀 Yarışma hakkındaki diğer detaylara buradan ulaşabilirsiniz.
20150416113401 (1)

CodeIgniter Active Record Sınıfı

CodeIgniter’da veritabanı işlemlerini active record sınıfı ile yapıyoruz kullanımı oldukça kolaydır.Öncelikle config dizini altındaki database.php veritabanı ayarlarını yapıyoruz.Daha sonra application
dizini altındaki model klasöründe bir sınıf oluşturuyoruz burada önemli oluşturduğumuz dosyanın isminin sonuna model ekliyoruz.Örnek olarak vt_model.php ve model katmanında yazdırma işlemleri yapılmaz MVC mantığına aykırıdır.

class uye_model extends CI_Model{
 
    function __construct()
    {
        parent::__construct();
        $this->load->database();    //database load ediyoruz.
    }
 
}

veritanı işlemleri için listele adında bir fonksiyon yazalım.

    public function listele(){
            $this->db->select("*");
            $this->db->from("kisiler");
            $sorgu = $this->db->get();           //kişiler tablosundaki bütün verileri çekiyoruz.
            return $sorgu->result_array();       //sonucu return ederek yolluyoruz.
    }

yazdığımız fonksiyonu Controller’ımızda çalıtırıyoruz.

class Anasayfa extends CI_Controller {
public function index()
	{
		$this->load->view('ana_view');
		$this->load->database();
	}
  public function uyeGoster(){
  $this->load->model('uye_model'); //modelimizi yüklüyoruz
  $this->uye_model->listele();     //listele adındaki fonksiyonumuzu çalıştırıyoruz.
  }
}

fonksiyonumuza index.php/anasayfa/uyeGoster dizininde ulaşabiliriz.
where kullanımıda şu şekilde

$this->db->where("id",1);

veya daha farklı olarak koşulları bir diziye aktararak olabilir.
like kullanımıda şu şekilde

$this->db->like("uye_ad","vural");

CodeIgniter ile Rehber Uygulaması

Merhaba arkadaşlar,bu aralar CodeIgniter ile ufak tefek script yazıyorum.En son uğraştığım rehber uygulamasını paylaşmak istedim front olarak eksikler var yakın zamanda güncelleme yaparak en son halini paylaşacağım. Uygulamayı kurarken veritabanı ayarlarını database dosyasında ayarlamayı unutmayın.

Kodlar

CodeIgniter ile Controller Kullanımı

Bu yazıda Codeigniter’in Controller dosyasının kullanımına bakacağız. Controller dosyası default olarak şu şekilde gelmektedir.

class Blog extends CI_Controller {
 
	public function index()
	{
		$this->load->view('welcome_message');
	}
 
}

Bu dosyaya ci/index.php/blog/ adresinden ulaşıyoruz.Bu sınıfı belirtirken ilk harfi büyük olmalı yani büyük olması programlama ahlakı yönünden doğrudur küçük yazdığımızda hata almayız.

<?php
class blog extends CI_Controller {
 
}
</php>
Controller dosyasında bir fonksiyon yazdığımızda fonksiyona classın altında erişiriz.Örnek olarak bir fonksiyon yazdığımızda 
<pre lang="php">
class blog extends CI_Controller {
 
	public function index()
	{
		$this->load->view('welcome_message');
	}
 
	function hello(){
		echo "hello";
	}
}
?>

ci/index.php/blog/hello bu adresten ulaşırız.
Oluşturduğumuz bir fonksiyona parametre yollamak istersek adres yolunda slahs koyarak belirtiriz.

class blog extends CI_Controller {
 
	function deneme($a,$b){
		echo $a+$b;
	}
}

ci/index.php/blog/deneme/2/5 şeklinde parametreleri göndeririz sonuc olarak bize 7 sonucunu gösterir.

CodeIginiter Kütüphanelerine Ulaşma

Codeigniter Framework’ü kullanırken bazı durumlarda kullanım kolaylığı sağladığını görüyoruz.Bunlardan biride kendi içerisindeki kütüphaneleri kullanma Codeigniter’da fonksiyonları Helper dosyasında yazıyoruz.Bunun dışında kendi içindeki fonksiyonları kullanmak için get_instance() fonksiyonu kullanılır.Örnek olarak Codeigniter objesini değişkene atayalım.

$string = "[email protected]";
 
$ci =& get_instance();

Objeyi atadıktan sonra $this yerine artık değişkeni kullanmamız gerekecek. PHP4 kullanıyorsanız get_instance() fonksiyonunu sınıfın contructor kısmından çağırmaktan kaçınmalısınız .Oluşturduğumuz objeyi Codeigniter’in şifreleme kütüphanesi olan encrypt için kullanalım.

$ci->load->library("encrypt");
$string = $ci->encrypt->encode($string);

burada önemli olan get_instance() fonksiyonun bir değişkene aktarılmasıdır.