Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Derinlemesine PHP Fundamentals Web Database Services
Derinlemesine PHP Fundamentals Web Database Services
Derinlemesine PHP Fundamentals Web Database Services
Ebook718 pages2 hours

Derinlemesine PHP Fundamentals Web Database Services

Rating: 0 out of 5 stars

()

Read preview

About this ebook

Derinlemesine PHP Fundamentals Web Database Services - Önder Teker

Bu kitapta PHP dilinin temel konularının yanısıra, orta ve ileri düzey konular da işlenmektedir. Web ortamında HTML üzerinde geliştirme yapmak için gerekli bilgiler verilmekte; SQL veritabanlarıyla ile işlem yapmak için, hem geleneksel hem de yeni yöntemler açıklanmaktadır. Standart Web programlama dışında JSON ve REST ile Web Service yapmak için araçlar da anlatılmıştır. Yönetim ekranları, giriş-çıkış işlemleri gibi uygulamalar için hazır prototipler kitabın içeriği kapsamındadır.

Aşağıdaki konuları içerir:

  • PHP Fundamentals & Object-Oriented Programming
  • PHP Web Programming
  • MySQL & Database Programming
  • JSON & REST Services
LanguageTürkçe
PublisherOnder Teker
Release dateAug 18, 2018
ISBN9786056142482
Derinlemesine PHP Fundamentals Web Database Services

Read more from Onder Teker

Related to Derinlemesine PHP Fundamentals Web Database Services

Related ebooks

Reviews for Derinlemesine PHP Fundamentals Web Database Services

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Derinlemesine PHP Fundamentals Web Database Services - Onder Teker

    Derinlemesine

    PHP

    Fundementals

    Web

    Database

    Services

    Önder Teker

    Godoro Yayıncılık

    GODORO YAYINCILIK

    Yayıncı Sertifikası No: 18531

    Kitabın Adı:

    Derinlemesine PHP Fundementals Web Database Services

    Copyright © 2017 Godoro Yayıncılık

    Kitabın Yazarı:

    Önder Teker

    Birinci Basım, Nisan 2017, İstanbul

    ISBN:

    978-605-61424-8-2

    Kapak Tasarımı ve Mizanpaj:

    Önder Teker

    Baskı ve Ciltleme:

    NET COPY CENTER

    Özel Baskı Çözümleri

    İnönü Cd. Beytülmalcı Sk. No:23/A

    Gümüşsuyu, Taksim 34427 İstanbul TR.

    GODORO YAYINCILIK

    Selahaddin Pınar Cad. Naci Kasım Sok.

    Tekin Apt. No:10 D:4 Mecidiyeköy

    Şişli / İstanbul

    Telefon/Fax : (212) 213-0275

    http://www.godoro.com

    Derinlemesine

    PHP

    Fundementals

    Web

    Database

    Services

    Önder Teker

    Godoro Yayıncılık

    Ortam ve Sunucu

    Çalıştırma Ortamı

    PHP Temel Bileşenler

    PHP ile geliştirme yapabilmek için çeşitli ortamlara gereksinim duyulur. Bunlardan en önemlileri:

    Örün Sunucu(Web Server) : HTTP protokolü üzerinden, istemci veya tarayıcılara HTML ve öteki türdeki içerikleri sunmak için yapılmış HTTP sunucuları gereklidir. Bunlardan en bilenleri şunlardır: Apache Web Server, Internet Information Server

    PHP Motoru(PHP Engine) : Bir örün sunucunun PHP çalıştırabilecek duruma gelmesini sağlayan yazılımlardır. Bunlardan en bilinenlerden biri ZendEngine adlı üründür.

    SQL Veritabanı (SQL Database) : Her ne kadar koşul olmasa da, neredeyse tüm uygulamalar bir veritabanı kullanır. O yüzden PHP ile birlikte genellikle bir veritabanı da kurulur. Bunlardan en yaygın olanlarından birisi MySQL ürünüdür.

    AMP - Apache MySQL PHP

    PHP geliştirme için gerekli olan araçlar genellikle birlikte kurulur. Bunlardan en temel olanları; Apache Web Server, MySQL ve PHP Engine olduğu için, bunları birlikte kuran türlü paketler bulunmaktadır.

    Önceleri LAMP (Linux Apache MySQL Perl) biçiminde bir paket anlayışı vardı. Buna göre Linux işletim sistemi kurulur, onun üzerinde de Apache Web Server, MySQL ve Perl Engine kurulurdu. Ancak zamanla Perl gözden düştü ve yerine PHP geldi ve bu pakete de LAMP denmeye devam edildi. Öte yandan, PHP diline almaşık olarak Python da kullanılmaya başlandı ve bu bileşime de LAMP adı verilmektedir.

    Linux için kullanılan LAMP çözümünün Windows işletim sistemi için sürümleri de çıkmış, adına WAMP (Windows Apache MySQL Perl/PHP/Python) denmiştir. Hem Linux hem de Windows için çalışan paketlere de XAMP adı verilmektedir. Buradaki X, herhangi bir işletim sistemi anlamına gelmektedir. Hem Perl hem de PHP desteği olduğu için XAMPP adı da verilmektedir ki böyle bir AMP dağılımı da bulunmaktadır.

    MySQL veritabanı, önce Sun firması tarafından satın alınması ve Sun firmasının da Oracle firması tarafından alınmasıyla, rakiplerinden birisi olan Oracle kurumunun eline geçmiş oldu. Ancak MySQL veritabanının kurucusu, MariaDB adında, MySQL kodlarından çatallanmış yeni bir sunucu geliştirdi. O yüzden AMP paketlerindeki M harfi MySQL yerine MariaDB anlamına da gelebilmektedir. Ancak bir çok kişi, adı MariaDB de olsa, MySQL için çalışan kodlar aynen MariaDB için de çalıştığı için, yine MySQL adını kullanmaktadır.

    Uygulama Dizini (Application Directory)

    Varsayılan Dizin (Default Directory)

    PHP dosyalarının sınama ya da üretim ortamında çalışmaları için belli bir konumda bulunmaları gereklidir. Sınama ortamında, kurulan örün sunucusu için varsayılan dizin (default directory), genellikle adı htdocs (HTML documents - HTML belgeleri) olan klasördür. Örneğin

    C:/xampp/htdocs

    biçimindeki konuma PHP dosyaları konmalıdır. Sunucu yakasında da bu adla bir dizin bulunur ve HTML veya PHP dosyaları o klasörün altına yerleştirilir.

    Sanal Dizin (Virtual Directory)

    Sunucunun varsayılan konumu yerine, herhangi bir konumdaki bir klasördeki dosyaların çalıştırması isteniyorsa sanal dizin (virtual directory) adı verilen bir yapı oluşturulur. Buna göre örün sunucunun yapılandırma dosyalarında belli bir klasör, belli bir URL dizinine atanır. Örneğin

    http://myhost/phpexamples

    dizini

    C:\Examples\PHP

    gibi bir konuma eşitlenir. Buna göre tarayıcıda

    http://myhost/phpexamples/MyPage.php

    yazılırsa sunucu

    C:\Examples\PHP\MyPage.php

    adlı dosyayı çalıştırır.

    Apache Sanal Dizin Kurulumu

    Aşağıda Apache HTTP Server için sanal dizin yapılandırması anlatılmaktadır. Ayrı sürümlerde ayrı yapılandırma gerekli olabilir. Başka örün sunucular için sanal dizin oluşturma ve yapılandırma işlemi çok ayrı biçimde gerçekleştirilebilir. Kimi sunucularda bir yapılandırma dosyasına bir kaç ayar girmekten oluşan süreç, kimi sunucuların yönetim uygulamalarında bir kaç tıklama ve bir kaç veri girişiyle gerçekleştirilebilir.

    Yapılandırma Dosyası

    Sunucunun httpd.conf yapılandırma dosyası açılır. Bu dosya, Apache sunucusunun kök dizininde bulunur.

    Takma Ad Modülü

    Yapılandırma dosyasında alias_module (takma ad modülü) adlı modülünün yüklü olduğu sağlama alınır. Bunun için aşağıdaki gibi bir satır olmalıdır:

    LoadModule alias_module modules/mod_alias.so

    Bu satırın başında bu modülün etkinsiz olduğunu gösteren kare karakteri #, varsa, silinir.

    Takma Ad Ekleme

    Takma ad modülü etkinse yapılacakların belirtildiği bölüm bulunur, yoksa eklenir ve aşağıdaki gibi bir takma ad (alias) tanımı yapılır:

      ScriptAlias /cgi-bin/ C:/xampp/cgi-bin/

    Alias /phpexamples C:\Examples\PHP

    Sanal Dizin Tanınlama

    Sanal bir dizin tanımlaması aşağıdaki gibi yapılır:

    C:\Examples\PHP>

      Options Indexes FollowSymLinks Includes ExecCGI

      AllowOverride All

      Require all granted

    Bu ayarların tümü gerekli olmasa da göçür yapıştır yöntemiyle aynen kullanılabilir.

    Genel Konular

    Söz Dizimi

    PHP, bir örün programlama (web programming) dilidir. Ortaya çıkma amacı, kişilerin kendi kişisel sayfalarını çok kolay bir biçimde oluşturabilmesidir. Kullanımının kolaylığı, PHP dilini yalın sayfaların ötesinde, çok gelişmiş örün uygulamaları geliştirme için kullanılır duruma getirmiştir.

    HTML

    PHP dili bir HTML sayfası içerisinde kodlanır. Hiç bir PHP öğesi olmasa da, yalnızca HTML öğelerini içeren bir sayfa .php uzantısı ile oluşturulursa PHP sayfası olarak değerlendirilir. Hiç PHP kodu içermeyen bir PHP sayfası aşağıdaki gibi yapılabilir:

    Godoro PHP

    Godoro PHP

    Bu sayfada herhangi bir PHP kodu yok.

    Görüldüğü gibi yukarıdaki sayfa herhangi bir programlama kodu içermemektedir.

    Ekran çıktısı:

    grafikler15

    PHP

    PHP sayfalarında HTML içerisinde kodlar ile ?> arasında yazılır. Bunun daha kısa olan biçimi ise ile ?> arasında yazmaktır. Ancak bu, kimi PHP ortamlarında, özel bir ayar yapmadıkça desteklenmez.

    Bir sayfada herhangi bir PHP kodu çalıştırmak için:

      // Buraya PHP kodu gelecek

    ?>

    biçiminde bölüm eklenir.

    Ekrana metin basan bir PHP sayfası aşağıdaki gibi yapılabilir:

    Godoro PHP

    Godoro PHP

    echo Burada yazılanlar ekranda görünür;

    ?>

    Buradaki echo (yankıla) buyruğu yazılan sicim (string) içeriğini bulunduğu yere basar. PHP dilinde echo ile düz yazı basılabildiği gibi, HTML içeriği de basılabilir.

    Yukarıdaki örnekte ekrana bir yazı, echo buyruğu kullanarak basılmaktadır. Söz konusu buyruk, body etiketi içerisinde h1 etiketinden sonra yazılan bir kod bloğunda yazıldığı için, sonuç olarak üretilen HTML kodunda da aynı konumda yer alır.

    Ekran çıktısı:

    PHP dilinde her tümce için demeç (statement) adı verilir ve sonunda noktalı virgül (semicolumn) işareti (;)

    grafikler16

    konur. Satır kavramı yoktur. Aynı satıra birden çok demeç yazılabilir. Ancak okunaklılığı olumsuz etkilediği için hiç önerilmez. Örnek:

    echo Godoro; echo PHP; echo Kitap;

    Değişken ve Dizi

    Değişken (Variable)

    Tüm programlama dilleri değişken (variable) adında, içerisinde veri barındıran yapılar içerirler. PHP değişkenlerinin önüne dolar işareti ($) konur. Örneğin company adlı bir değişken tanımlayıp değerini Godoro yapmak istenirse aşağıdaki gibi bir kod yazılabilir:

    $company=Godoro;

    PHP dilinde değişkenler için tür (type) bilgisi verilmez. Tür bilgisini PHP, atanan değere bakarak kendisi bulur. Yukarıdaki örnekte çift tırnak (") içerisindeki değer , verinin türünün sicim (string) olduğunu belirlemiş olur. Bunun yerine atama

    $company=123;

    biçiminde olsaydı, değişkenin türünün tümsayı olduğu ortaya çıkacaktı.

    Bildirilmiş bir değişkenin kullanımı aşağıdaki gibi, yine dolar işareti ($) kullanılarak yapılır. Örnek:

    echo $company;

    Değişkenleri echo kullanmadan ve ?> arasında vererek de basmak olanlıklıdır. Örnek:

    $unit?>

    Burada eşittir (=) işareti echo anlamına gelir. Bu biçimde kullanımda eşittir işaretinden sonra gelen kod parçası bir deyim (expression) olmalı, yani bir değer içermelidir. Buraya demeç (statement) yazılamaz ve sonuna noktalı virgül (;) konulamaz.

    Ekrana bir değişkenin değerini basan bir PHP sayfası aşağıdaki gibi yazılabilir:

    Değişken

    $company=Godoro

      echo $company;

    $unit=Eğitim;

    ?>

    Birim $unit?>

    Yukarıdaki örnekte $company (şirket) diye bir değişken, değeri verilerek tanımlanmakta ve sonra echo buyruğuyla ekrana basılmaktadır. Sonraki satırlarda $unit (birim) değişkeni tanımlamakta ancak ekrana basılması echo ile değil de ve ?> işaretleri arasında basılmaktadır.

    Ekran çıktısı:

    grafikler17

    Sicim (String)

    En çok kullanılan veri türlerinden birisi de sicim (string) türüdür. Yazı karakterlerini içerisinde barındırır. Harf, rakam, noktalama işareti gibi klavyeden girilebilen karakterlerin tümü bir sicimin içinde yer alabilir.

    Bir sicim içerisinde bir değişken dolar işareti ($) ile kullanılabilir. Örnek:

    $name="$course Kursu";

    Burada $name değişkeninin değerine $course değişkeninin içeriği de eklenmiş olur.

    Sicimleri bitiştirme (concatenate) için nokta (.) işleci kullanılabilir. Örnek:

    $course=$company. .$subject. Kursu ;

    Burada $course değişkeninin değeri eşittirden sonra belirtilen $company, $subject ve Kursu sicimlerini bitiştirir.

    Sicimleri birleştirip ekrana basan tüm bir örnek:

    Sicim Bitiştirme

      $company=Godoro

      $subject=PHP;

      $course=$company. .$subject. Kursu ;

      $book="$company $subject Kitabı ";

    ?>

    Kursun Adı : course?>

    Kitap Adı : book?>

    Yukarıdaki örnekte $company (şirket) ve $subject (konu) değişkenleri, değerleri verilerek tanımlanmış; $course (kurs) ve $book (kitap) değişkenlerinin değerleri ise önceki değişkenleri de içinde barındıran bir sicime atanmıştır.

    Ekran çıktısı:

    grafikler18

    Tür (Type)

    PHP için en çok kullanılan temel türler aşağıdaki gibidir:

    Sicim(String) : Karakterlerden oluşan dizi.

    Tümsayı(Integer): Kesirli olmayan, tüm sayı.

    Kayan(Floating): Kesirli, ondalıklı gerçek sayı.

    Mantıksal(Boolean): Ya doğru ya da yanlış olabilen değer.

    Çeşitli türlerde değişkenlerin kullanımına ilişkin bir örnek :

    Türler

      $course=PHP;

      $hour=30;

      $price=10.5;

      $weekend=true;

    ?>

    Kurs : course?>

    Saat: hour?>

    Saatlik Ücret : price?>

    Haftasonu Mu?: weekend?>

    Yukarıdaki örnekte $course (kurs) değişkeni bir sicim, $hour (saat) değişkeni bir tüm sayı, $price (eder, fiyat) değişkeni de kayan noktalı (gerçek) sayı ve $weekend (haftasonu) değişkeni de mantıksal (boolean) türünde veri tanımlanmakta ve değerler ekrana basılmaktadır.

    Ekran çıktısı:

    grafikler19

    Sicim Dönüşümü (String Conversion)

    PHP dilinde tümsayı (integer) ya da kayan (float) sayılar ile sicim (string) türü arasında dönüşüm (conversion) işlevleri bulunmaktadır.

    Sicimden Sayıya

    Bunlardan intval() (tümsayı değeri) bir sicimi tümsayıya dönüştürürken, floatval() (kayan değer) ise sicimi kayan sayıya döndürür. Örneğin

    $integer_value=intval(123);

    $float_value=floatval(12.3);

    biçimindeki demeçlerde, ilk dize tümsayıya, ikincisi kayan sayıya dönüşüm sağlar.

    Sayıdan Sicime

    Sayılardan sicime dönüştürmek için strval() (sicim değeri) işlevi kullanılır. Örneğin

    $int_string=strval(123);

    $float_strig=strval(12.3);

    biçimindeki demeçlerden ilkinde tüm sayıdan sicime dönüşüm yapılırken ikincisinde dönüşüm kayan sayıdan yapılmaktadır.

    Dönüşüm Örneği

    Dönüşüm işlemleriyle ilgili örnekler içeren bir PHP yaprağı aşağıdaki gibi yapılabilir:

    Dönüşüm

    $integer_value=intval(123);

    $float_value=floatval(12.3);

    $int_string=strval(123);

    $float_string=strval(12.3);

    ?>

    Tümsayı Değer : $integer_value?>

    Kayan Değer: $float_value?>


    Tümsayı Sicim : $int_string?>

    Kayan Sicim: $float_string?>

    Yukarıdaki örnekte ilk olarak sicim değerleri tüm sayı ve kayan sayıya çevrilmektedir. Son bölümde sicim değerlerinin sayılara dönüşümü yapılmaktadır.

    Ekran çıktısı:

    grafikler145

    Döküm (Casting)

    Sayılar ya da aynı kökten gelen değerlerin türleri arasındaki dönüşüme döküm (casting) adı verilir. Buradaki işlemde, sicimden sayıya ya da sayıdan sicime gibi, ilgisiz bir türden ötekinde dönüşüm söz konusu değildir. Yapılan; sayıdan sayıya, bir alt türden ötekine dönüşümdür. Örneğin

    $integer_value= (int) 12.3 ;

    biçimindeki demeçte, (int) (tüm sayı) biçimindeki kod ile, kayan sayı tüm sayıya dökülür. Buna göre 12.3 sayısı artık 12 olur. Dökme değişkenlerle de yapılabilir:

    $integer_value= (int) $float_value ;

    Geniş türden dar türe, örneğin kayan sayıdan tüm sayıya dökümler zorunlu olarak gösterilir. Çünkü veri yitimi olur, ondalık kesimdeki değerler yitirilir. Ancak dar türden geniş türe döküm kendinden yapılabilir. Örneğin

    $float_value = (float) $integer_value ;

    biçiminde, (float) (kayan) kodu ile yapılabileceği gibi

    $float_value = $integer_value ;

    gibi, tür belirtmeden de döküm yapılabilir. Çünkü burada 12 biçimindeki bir değer 12.0 biçimde kayan sayıya dönüşse de veri yitimi olmaz.

    Döküm işlemlerini içeren bir örnek aşağıdaki gibi yapılabilir:

    Döküm

      $integer_value=(int)12.3 ;

      $float_value=(float)$integer_value ;

      $float_value=$integer_value ;

    ?>

    Tümsayı Değer :


    Kayan Değer:

    Ekran çıktısı:

    grafikler146

    Dizi

    Birden çok değerin bir değişkende tutulması için dizi (array) denilen yapılar kullanılır. Buna göre

    $myarray=array(Öğe 1,Öğe 2,Öğe 3); 

    biçiminde bir kullanımla 3 adet öğe $myarray adlı diziye atanmış olur. Dizinin öğelerine sıra (index) ile erişim için

    $myarray[index]

    biçiminde bir kullanım yapılır. Diziler sıfır tabanlı (zero-based) olarak, yani ilk öğenin sırası 1 değil 0 olacak biçimde çalışır. Örneğin

    $myarray[2]

    deyimi dizinin 3. öğesini gösterir

    Bir dizideki elemanların sayısını almak için count() (say) işlevi kullanılır. Örnek:

    $mycount=count($myarray)

    Dizi kullanımına bir örnek aşağıdaki gibi verilebilir:

    Dizi

      $course=array(PHP,Java,C#);   

    ?>

    Kurs 1 : [0]?>

    Kurs 2 : [1]?>

    Kurs 3 : [2]?>

    Yukarıdaki örnekte $course (kurs) diye bir dizi, 3 değer verilerek tanımlanmaktadır. Daha sonra HTML içinde bu dizinin

    Enjoying the preview?
    Page 1 of 1