PHP Namespace

Merhaba,

Nedir bu namespace diyerek Google’nin başına geçmiş, araştırmalar yapmış ve tam olarak kafanıza oturmadan çalışmaları sonlandırmış olabilirsiniz. Biraz gerçekçi senaryolar üzerinden giderek sonuca ulaşmaya çalışalım.

– library

– Form

– Data.php (class Data)

– Database

– Data.php (class Data)

Şeklinde iki adet Data.php dosyalarına tanımlanmış Data isimli sınıflarımız var. Buraya kadar sorun yok. Şimdi bunları aynı sayfa üzerinde çalıştırmaya çalışalım.

<?php

require_once('library/Form/Data.php');

require_once('library/Database/Data.php');

$object1 = new Data();

$object2 = new Data();

?>

İşte burada işler karıştı ve fatalı yediniz. PHP size kızdı. Muhtemelen kullandığınız IDE bile size kızdı. Yazıklar olsun dedi. PHP 5.3.x ile beraber gelen namepsace bu konuda bize çözüm sağlıyor.

library/Database/Data.php :

<?php

namespace Database;

class Data{

}

?>

library/Form/Data.php

<?php

namespace Form;

class Data{

}

?>

Şimdi namepsace ile doğru kullanımına geçelim

<?php

require_once("library/Database/Data.php");

require_once("library/Form/Data.php");

$object1 = new \Database\Data();

$object2 = new \Form\Data();

?>

Evet şimdi işlet tıkırında giti ve PHP’de IDE’de kızmadı bize. Çalıştı. Eğer namespace kullanmamış olsaydık 2. Data classımız için Data yerine başka belkide anlamsız bir isim vermek zorunda kalacaktık. Özellikle büyük çaplı projelerde iç içe klasör yapıları ve classlar ile daha anlamsız class isimleri oluşturmak durumunda kalacaktık. Buda kod okunurluğunu ve OOP yapısına uygun olmayan sonuçlar doğurabilirdi.

Umarım faydalı olmuştur.

Twig Kurulumu ve Kullanımı

Merhaba,

Profesyonel yazılım projelerinde yazılım tasarımdan ayrı tutularak tasarlanır ve geliştirilir. Özellikle özel şirketlerde yazılım, tasarım ve arayüz için farklı departmanlar bulunmaktadır. Konusunda uzman kişiler çalışmalarını birbirlerine ayak bağı olmadan ilerletir. Ne arayüz geliştiricilerin her iş için yazılımcılara ihtiyacı olur ne de yazılımcıların her iş için tasarımcılara ihtiyacı. Bu bağlamda basit bir yazılım dili gibi HTML değişkenler ile birçok çalışma yapmak mümkün.

Önemli template motorlarından Twig kurulumu ve birkaç basit çalışmayı sizlerle paylaşmak istiyorum.

Twig 1.12.2 sürümünü indirmek için buraya diğer sürümlere erişmek için buraya tıklayınız. İndirmiş olduğunuz dosyayı çalışmak istediğiniz dizine çıkarmanız gerekiyor. Aslında kurulumdan kastımız buydu 🙂 Sadece çalışır duruma gelmesi için birkaç düzenleme daha yapacağız. Cache ve template dosyalarımızın bulunacağı 2 klasör daha isteyecek bizden. Oluşturmanız gereken klasörleri aşağıda listeliyorum

– compilation_cache

– templates

Templates klasörümüzün içine index.html ekleyelim. Basit bir sayfa olacak

<!DOCTYPE html>
<html>
    <head>
        <title>My Webpage</title>
    </head>
    <body>
        <h1>My Webpage</h1>
        {{ message }}
    </body>
</html>

Proje dizinimize index.php oluşturup içine şu kodları ekleyelim :

<?php
require_once 'lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array('message' => "Hello Word!"));
echo $twig->render('index.html');

Twigi oluşturup template dizinimizi belirttik. index.html ile haberleşecek olan verileri array olarak gönderiyoruz. message değişkenimiz var şuan sadece. En son olarak index.html’i render ederek çalıştırmış olduk. Ekrana “Hello Word” yazıldığını görürseniz başardınız demektir 🙂

Ubuntu PHP 5.4’den 5.3’e Geçiş (Downgrade)

Merhaba,

Ubuntu ile pek çok şeyin kurulumu oldukça basittir. Bunlardan biride PHP. Tabi sudo apt-get install php5 diyerek en güncel PHP sürümüne erişmiş oluyoruz. Yazıyı yazmış olduğum tarihte ki en güncel versiyon PHP 5.4.6.

Tabi ki geliştiriciler olarak en güncel versiyonları takip etmek ve ayak uydurmak durumundayız. Oldukça hızlı gelişen bir platform üzerinde çalışmalar yapmaktayız. Ancak mevcut projeleriniz veya araştırma geliştirme çalışmalarımız için PHP 5.3 sürümüne ihtiyaç duyabiliriz. Bunun için derlenmiş durumda olan PHP 5.3.3 sürümünü makinamıza kuracak olan bir bash script dosyamız mevcut.

İndirmek için https://www.box.com/s/utzf230qwdt1i5ifvmiu adresini kullanabilirsiniz. İndirdikten sonra yapmanız gerekenleri aşağıda yazıyorum. Sonrasında PHP 5.3.3 versiyonuna sahip olmuş olacaksınız.

sudo sh php5_4_downgrade_5.3.sh

 

Ubuntu DNS Ayarlarını Değiştirmek

Merhaba,

Ubuntu işletim sistemi üzerinde DNS ayarlarımızı nasıl güncelleyebileceğimizden bahsedeceğim. Çeşitli sebeplerden ötürü DNS ayarlarınızı değiştirme ihtiyacı duyabilirsiniz. Yaygın olarak kullanılan Google DNSlerini kullanarak ben bu işlemi size anlatacağım. Sizler ihtiyaçlarınıza göre farklı DNS bilgilerini kullanarak işlem yapabilirsiniz.

İlk işimiz /etc/dhcp/dhclient.conf dosyasını açarak prepend domain-name-servers yazan satırı bulalım (CTRL+W ile arama yapabilirsiniz.) Muhtemelen bu satırın başında # işareti olacaktır. Bu işareti kaldırarak satırı şu şekilde düzenleyelim ve kaydedelim :

prepend domain-name servers 8.8.8.8 8.8.4.4

Son olarak bir işlemimiz daha kaldı. /etc/network/interfaces dosyamızı açarak düzenleme moduna geçelim. Aşağıdaki gibi düzenleyelim ve kaydedelim :

auto lo
iface lo inet loopback
dns-nameservers 8.8.8.8 8.8.4.4

An itibari ile DNS ayarlarımızı güncellemiş olduk. Yukarıda da bahsettiğim gibi Google DNS bilgilerini kullandım (8.8.8.8 8.8.4.4) Siz başka DNS de tercih edebilirsiniz. Umarım faydalı olmuştur.

Gömülü Sistemler

Merhaba,

Pek çok kez adını duyduğumuz (yazılım dünyasında) gömülü sistemler(embedded system) ne işe yarar diye biraz araştırmaya koyuldum. Evimde bulunan çeşitli kaynaklardan edindiğim bilgileri özette olsa sizle paylaşarak bilmeyenler için fikir sahibi olmanıza yardımcı olacağım.

Gömülü sistemleri mini bilgisayarlar olarak adlandırabiliriz. Bir kişisel bilgisayardan ziyade daha önceden tanımlanmış işleri dışarıdan tetikleyerek veya otomatik olarak gerçekleştiren sistemlerdir. Belirli sistemleri kontrol ederler ve bazı durumlarda kendilerini de kontrol ederler. Bu sistemler genellikle salt-okunur (read-only) bir bellek üzerinde bulunur.

Hayatımızın pek çok yanına dağılmış olarak bu sistemleri kullanmaktayız. Örnek vermek gerekirse mikro dalga fırın, çamaşır makinesi, otomobillerde ki yol bilgisayarlarını örnek olarak verebiliriz.

Bu da demek oluyorki her eve bir bilgisayar kampanyasına gerek yok 🙂 zaten her evde var.

Üniversitede bir projem çerçevesinde ışıklandırma amacıyla kullanılacak olan bir gömülü sistem projem vardı. PIC ile yazıyorduk (yazmaya çalışıyorduk) Hayatımızın her alanına dağılmış olan ve günlük yaşantımızı kolaylaştıran bu sistemlerden ufakta olsa bahsetmek istedim. Umarım fikir sahibi olmuşsunuzdur.