PHP Trait Kullanımı

PHP 5.4 ile gelen trait PHP’ye multi-inheritance özelliği getirdi. PHP’de 5.4 ten önce sınıflar sadece single-inheritance alabiliyordu. PHP trait bu duruma çok iyi bir çözüm oldu. Daha esnek bir yapı getirdi.

PHP’de trait nasıl kullanılır?
trait bir kendi başına bir sınıf gibidir. Ama bu trait lerden nesneler kuramıyoruz. Sadece yeni sınıflarda genişletebiliyor yeni metodlar ve alanlar ekleyebiliyoruz. Bir sınıfta istediğimiz kadar trait, bir trait ‘ide istediğimiz kadar sınıfın içinde kullanabiliyoruz. Bir sınıf içinde trait kullanmak için use anahtar kelimesini kullanıyoruz. Namespace ile karıştırılmamalıdır.
diyagram_1
Örnek bir trait kullanımı

Çıktı:

Yukarıdaki multi-inheritance için basit bir örnekti. Bir çok sınıf bir çok trait için bir örnek yapalım.

diyagram_2

Çıktı:

PHP – Soyut Sınıflar

webpage_coding_web_programming_html_script_php_code_website_application_java_css_development_editor_flat_design_icon-512

Soyut sınıflar içerisinde en az bir soyut metot bulunduran sınıflardır. Genel amaçları bir çok işi ortak yapan ortak sınıfları bir araya toplamaktır. Aşağıda buna uygun bir örnek verilmiştir.

Soyut sınıf denilmesinin sebebi soyut metotların sınıf içerisinde bir görev yapmaması miras yolu(kalıtım) ile kendinden türeyen sınıflara devretmesidir. Soyut sınıflar kendi içlerinde soyut metotlar dışında somut metotlarda bulundurabilir. Bu metotlar ezilmezler(override).

Metotlar ve veri alanları soyut sınıfta protected ve public olarak tanımlanmalıdır ki türeyen sınıfta kullanılabilsin. Sadece soyut sınıfta kullanılan bir veri alanı ise private olarak ta kullanılabilir.

Soyut sınıfta tanımlanmış bir durumda türeyen sınıfta ezilirken(override) erişim türünde kısıtlama yapılamaz. Örneğin; soyut sınıfta public olarak tanımlanan bir alan türetilmiş sınıfta public olmak zorundadır. Soyut sınıfta protected olarak tanımlanan bir alan protected veya public olmak zorundadır. Genişletilebilir ama daraltma yapılamaz.

Bir sınıfın soyut olarak tanımlanması için class deyiminin önüne abstract deyimi getirilir. Soyut sınıfta metotların soyut olarak belirlenmesi için erişim tipinin önüne veya function deyiminin önüne abstract deyimim getirilmeli ve gövdesiz bir metot olmalıdır. Soyut sınıfın hiç soyut metodu yoksa o sınıf soyut metot olarak işlem görmez.

Soyut metotlarda sınıf dışında bir değişkene atama yapılamaz. Yani new ile bir sınıf kurulumu yapılamaz.

Bir örnek verelim.

Yukarıda Soyut adında bir soyut sınıf tanımladık. Soyut sınıfımızı extends ile genişletelim. Ortak iş yapan 2 sınıf oluşturalım.

Yukarıdaki örnekte Soyut sınıfından Telefon ve Dogalgaz isminde 2 tane somut sınıf türettik. Soyut sınıfından kurucuyu(__construct) ve Ödeme fonksiyonlarını eziyor, Ödenen metodunu ise kalıtım ile miras alıyoruz.

Ödenen metodu 2 sınıfta da aynı işi yapmaktadır. Kurucu metot ve Ödeme metodu kendi sınıflarının belirledikleri görevi yerine getirmektedir.

Sınıflarımızı kurup sonuçları görelim.

sonuçlar:

Aynı parametreleri girmemize rağmen soyut sınıflar sayesinde sonuçlar farklı çıktı.

Google haritalar kullanımı – Gmaps.js

Şirketiniz veya kendiniz için google mapsi kullanarak konumunuzu adresinizi göstermek isteyebilirsiniz ama malesef ki google maps ile bunu yapmak artık zorlaştı bunun için açık kaynak lı bir eklenti yardımıyla istedigimiz işlemleri kolayca yapabiliyoruz..

Peki bunu nasıl kullanıcam?

http://hpneo.github.io/gmaps/
Eklentiye ulaşmak için yukarıdaki linke tıklayarak örneklere ve kaynak dosyasına ulaşabilirsiniz.

http://hpneo.github.io/gmaps/examples/markers.html

Yukarıdaki örnek en çok kullanılan örneklerden biri.

Github kullanmayan arkadaşlar için indirme linki aşagıda yer almakta.

Google maps indir

Laravel 4: Easily Cache Eloquent Collections

An awesome feature that didn’t make it to the current documentation of Laravel 4, is caching within Eloquent models. So even caching the database results is done in just a single line of code, for example:

Sublime Text Personal Settings

Favorite Snippets

Close_windows_when_empty — Closes the whole window if there are only empty tabs open when you hit cmd + w.

 

Folder_exclude_patterns — Set up folder exclusion for commonly used directories in your projects.

Font_ — Set type preferences for readability. Obviously, a monospaced font like Source Code Pro from Adobe would be best.

Highlight_line — Highlights the currently selected line based on styles in your theme. Incredibly useful if you use multi-pane layouts.

Highlight_modified_tabs — Another theme-based preference, but still useful. If you have multiple tabs open, one with un-saved changes will be highlighted.

Match_ — On creation of an opening bracket/brace/etc, a closing one is inserted.

Scroll_ — Allows you to scroll past the end of a file, which is necessary, especially if you hate extra empty lines at the end of a file like I do. Scroll speed to 2 is also helpful if you’re impatient with large files.

Translate_tabs_to_spaces — Simple. Add this. And if you’re still using tabs in your code, quit it.

Complete Preferences:

 

Setting up Composer globally for Laravel 4

An easy way to set up composer globally is to follow the instructions on getcomposer.org site:

Now I can use composer by invoking just the composer command.

Optional way to do it, is to set up an alias:

and

MongoDB setup to Python

Respectively; Type the following command in the terminal to install MongoDB  🙂

 

Ubuntu – Numix GTK3 theme

Numix is a modern flat theme with a combination of light and dark elements. It supports Gnome, Unity, XFCE and Openbox.

Numix is a part of the Numix Project.

A request

If you have few bucks to spare, please consider purchasing the theme to support the project and show that you appreciate the work and time spent into making the theme.

As a bonus, you’ll also get an additional Numix Dark theme with the purchase.

Installation instructions

Ubuntu users can install Numix from our PPA using the following commands,

 

Arch Linux users can install Numix from the community repo

pacman -S numix-themes

Fedora and OpenSUSE users can install Numix from our build service repo.

 

Code and license

Report bugs or contribute at GitHub

License: GPL-3.0+

Extra Goodies

Numix Light GTK theme – fav.me/d6hds18

Wallpaper (Glimpse of the future) – fav.me/d6eqf86

Icons (Numix Circle) – fav.me/d6uxcka

Gnome Shell theme (Numix preset) – fav.me/d525x6c

KDE4 QtCurve style and Color scheme – fav.me/d71pch5

Ubuntu 14.04’e Linux, Apache, MySQL, PHP (LAMP) paketinin kurulması

LAMP Nedir?

LAMP terimini açmak gerekirse, Linux işletim sisteminde Apache Web Sunucusunun bulunması, Verilerin Mysql ile tutulması ve dinamik içeriğin PHP ile oluşturulmasıdır.

En büyük avantajlarından birisi bu dördünün de açık kaynak olmasıdır.

Bu anlatımdaki kurulum Ubuntu 14.04.1’de denenmiştir

Adım 1 – Apache Kurulumu

Apache dünyada en popüler web sunucudur. Ubuntu’nun paket yöneticisi olan apt ile kurulum yapacağımız için işimiz çok basit olacak.

Öncelikle paket veritabanını güncelleyelim

Apache2’yi kuralım

Kurulumdan sonra Apache2’nin çalışma durumunu öğrenmek için herhangi bir web tarayıcısından

adresini kullanabilirsiniz.

Adım 2 – MySQL Kurulumu

MySQL, bir veritabanı yönetim sistemidir.

Bu sefer MySQL’in yanında yardımcı(helper) paketler de kuracağız. Diğer paketlerle bağlantımızı sağlayacak.

Kurulum sırasında MySQL için şifre soracaktır.

Şimdi MySQL için biraz güvenlik önlemleri alalım. Eğer sadece geliştirme ortamı için kurulum yapıyorsanız aşağıdakileri incelemenize gerek yok diğer adıma geçebilirsiniz. Sadece production ortamı içindir.

MySQL sistem tablolarını oluşturtalım

Güvenlik amaçlı basit bir script çalıştıracağız. Girişleri olabildiğince kısıtlayacağız.

Script sırasında root şifresi isteyecektir. Kurulumda girdiğiniz şifreyi girin.

Remove anonymous users ? : Üye oluşturmaya gerek kalmadan giriş yapılmasını sağlar. Production ortamı için Yes diye cevaplayalım.

Disallow root login remotely ? : root kullanıcısının SADECE “localhost”‘dan giriş yapabilmesini sağlayacağız. Böylece root şifresi bilinse de sadece ana makineden giriş yapılabilir. Bu yüzden Yes diye cevaplayalım.

Remove test database and access to it ? : Varsayılan olarak MySQL, ‘test’ isminde bir veritabanı oluşturabilir ve herkesin erişebilmesini sağlar. Production ortamı için gereksiz olacaktır, bu yüzden Yes diye cevaplayalım.

Reload privilege tables now ? : İşlemlerin tam çalışması için yetki tablolarının güncellenmesi gerekiyor. Yes diye cevaplayalım.

Adım 3 – PHP Kurulumu

PHP, dinamik verilerin gösterimi, SQL veritabanlarından bilgilerinin alınması ve işlemlerin yönetilmesini sağlayacaktır.

PHP ile beraber helperları da yükleyelim

Apache, varsayılan olarak dizin arama işlemlerinde index.html index.cgi index.pl index.php index.xhtml index.htm dosyaları sırayla aranmaktadır. index.php‘yi biraz öne alacağız.

Bunun için dir.conf dosyasını düzenleyelim.

sudo nano /etc/apache2/mods-enabled/dir.conf index.html’den hemen sonra alabilirsiniz.

PHP’nin çalışması için Apache’nin yeniden başlatılması yani Apache’nin konfigürasyon dosyalarına tekrar bakması gerekiyor.

PHP Modüllerinin Kurulması

Yüklenebilir PHP5 Modülleri için şu şekilde arama yapabilirsiniz

Yükleyeceğiniz modülleri belirledikten sonra şöyle kurulum yapabilirsiniz

## Adım 4 – PHP’nin Test Edilmesi PHP‘yi test etmek için çok basit bir PHP kodu yazacağız.

BONUS – PHPMyAdmin Kurulumu

PHPMyAdmin’i kuralım

Web server olarak apache2‘yi seçin

dbconfig-common’un düzenleme yapmasına izin verin

MySQL ve PHPMyAdmin şifresini girin

Kurulum bittikten sonra Apache’ye PHPMyAdmin dosyasını ekleyeceğiz.

En alta Include ekleyeceğiz.

Apache’yi yeniden başlatalım

Kontrol amaçlı aşağıdaki adrese gidebilirsiniz

BONUS – Sanal Sunucu Oluşturma

Projelerinizde sürekli localhost/ kullanmak yerine projenize özel sanal sunucu oluşturabilirsiniz.

Örneğin AwesomeProject projeniz için

Çalışma Dizini: /var/www/awesomeproject/public_html

Log Dizini : /var/www/awesomeproject/logs

Site Adresi : http://awesomeproject/

Bu şekilde daha düzenli ve rahat olacaksınız.
Klasörlerin oluşturulması

Yetkilerin verilmesi

Örnek Sayfa Oluşturulması

Sanal sunucuyu test etmek için örnek bir sayfa oluşturacağız. Sanal sunucumuz içerisinde bir index.html dosyası oluşturalım.

İçerisine

Sanal Sunucu: projeadi
Sanal Sunucu Dosyasının Oluşturulması

Sanal sunucu dosyası oluşturalım.

İçerisine aşağıdakileri yapıştırabilirsiniz fakat projeadi yazdığım yerleri kendinize göre düzenleyin.

Dosyayı kaydedin ve kapatın.

Yeni sanal sunucunun çalışması için aktifleştirmemiz ve Apache’yi yeniden başlatmamız gerekiyor