Derinlemesine PHP Fundamentals Web Database Services
By Onder Teker
()
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
Read more from Onder Teker
Derinlemesine Spring Boot Web Rating: 0 out of 5 stars0 ratingsDerinlemesine Python Rating: 0 out of 5 stars0 ratingsDerinlemesine İngilizce Dilbilgisi Rating: 5 out of 5 stars5/5Derinlemesine C Fundamentals ve Functional Programming Rating: 3 out of 5 stars3/5Derinlemesine Spring Boot Fundamentals Rating: 0 out of 5 stars0 ratingsDerinlemesine C ++ ve Object-Oriented Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Object-Oriented Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine JavaScript Rating: 5 out of 5 stars5/5Doğrudan Database Back-End Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Android Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Python AI Natural Language Processing Rating: 0 out of 5 stars0 ratingsDerinlemesine SQL Rating: 0 out of 5 stars0 ratingsDerinlemesine HTML & CSS Rating: 0 out of 5 stars0 ratingsDerinlemesine Python Data Science Rating: 0 out of 5 stars0 ratingsDerinlemesine JavaScript Language Rating: 0 out of 5 stars0 ratingsDerinlemesine Python AI Machine Learning Rating: 0 out of 5 stars0 ratingsDerinlemesine Java - ORM, JPA & Hibernate Rating: 0 out of 5 stars0 ratingsDerinlemesine NoSQL Rating: 0 out of 5 stars0 ratingsDerinlemesine React Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Web Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Python AI Computer Vision Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Desktop Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Android Data Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Java - MVC, JSF & Primefaces Rating: 0 out of 5 stars0 ratingsDerinlemesine Android UI Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Spring Boot Cloud Rating: 0 out of 5 stars0 ratings
Related to Derinlemesine PHP Fundamentals Web Database Services
Related ebooks
Doğrudan Java Eclipse Rating: 0 out of 5 stars0 ratingsDerinlemesine Java - MVC, JSF & Primefaces Rating: 0 out of 5 stars0 ratingsDoğrudan Web Front-End Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine NoSQL Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Desktop Programming Rating: 0 out of 5 stars0 ratingsDoğrudan Java Fundamentals Database Desktop Programming Rating: 0 out of 5 stars0 ratingsDoğrudan Java Web Enterprise Mobile Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine HTML & CSS Rating: 0 out of 5 stars0 ratingsDerinlemesine C ++ ve Object-Oriented Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Java - EJB, JMS ve Web Services Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Object-Oriented Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Java - ORM, JPA & Hibernate Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Web Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Java Database Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Android UI Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine React Rating: 0 out of 5 stars0 ratingsDerinlemesine JavaScript Rating: 5 out of 5 stars5/5Derinlemesine Android Programming Rating: 0 out of 5 stars0 ratingsDoğrudan SEO Rating: 5 out of 5 stars5/5Python'a Giriş, Veri Yapıları ve Nesne Yönelimli Programlama Rating: 0 out of 5 stars0 ratingsDoğrudan C#.NET Rating: 0 out of 5 stars0 ratingsVeritabanı: "Felsefesi, Tasarımı ve Yönetimi": MS-Access ve SQL Server Projeleri Rating: 0 out of 5 stars0 ratingsDoğrudan Database Back-End Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine SQL Rating: 0 out of 5 stars0 ratingsHerkes İçin TCP/IP Rating: 3 out of 5 stars3/5Derinlemesine Android Data Programming Rating: 0 out of 5 stars0 ratingsDerinlemesine Spring Boot Cloud Rating: 0 out of 5 stars0 ratingsDerinlemesine Python AI Computer Vision Rating: 0 out of 5 stars0 ratingsFlutter için Dart Programlama Rating: 0 out of 5 stars0 ratingsİş Analistleri İçin Gereksinimleri Ortaya Çıkarma Teknikleri Rating: 0 out of 5 stars0 ratings
Reviews for Derinlemesine PHP Fundamentals Web Database Services
0 ratings0 reviews
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
Bu sayfada herhangi bir PHP kodu yok.
Görüldüğü gibi yukarıdaki sayfa herhangi bir programlama kodu içermemektedir.
Ekran çıktısı:
grafikler15PHP
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
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 (;)
grafikler16konur. 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ı:
grafikler17Sicim (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ı:
grafikler18Tü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ı:
grafikler19Sicim 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ı:
grafikler145Dö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ı:
grafikler146Dizi
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