php-doc-en/chapters/intro.xml

223 lines
10 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="iso-8859-9"?>
<!-- $Revision: 1.40 $ -->
<chapter id="introduction">
<title>Giri<EFBFBD></title>
<sect1 id="intro-whatis">
<title>PHP nedir?</title>
<para>
<acronym>PHP</acronym> (a<><61>l<EFBFBD>m<EFBFBD> "PHP: Hypertext
Preprocessor") geni<6E> bir kitle taraf<61>ndan kullan<61>lan,
<20>zellikle web <20>zerinde geli<6C>tirme i<>in tasarlanm<6E><6D> bir betik dilidir.
PHP kodu HTML i<>ine g<>m<EFBFBD>lebilir bi<62>imde tasarlanm<6E><6D>t<EFBFBD>r.
</para>
<para>
Cevap basit g<>z<EFBFBD>kebilir, ama tam olarak ne anlama gelmektedir? Bir <20>rnek:
</para>
<para>
<example>
<title>Giri<EFBFBD> <20>rne<6E>i</title>
<programlisting role="php">
<![CDATA[
<html>
<head>
<title><EFBFBD>rnek</title>
</head>
<body>
<?php
echo "Merhaba, ben bir PHP beti<74>iyim!";
?>
</body>
</html>
]]>
</programlisting>
</example>
</para>
<para>
Bir PHP beti<74>inin (scriptinin) Perl ya da C gibi dillerden ne kadar farkl<6B> bir yap<61>da oldu<64>una dikkat edin.
HTML kodu yaratmak i<>in bir s<>r<EFBFBD> kod yazaca<63><61>n<EFBFBD>za, istedi<64>iniz i<>i yapan bir PHP kodu yaz<61>p onu
HTML kodunun i<>ine g<>m<EFBFBD>yorsunuz (bu <20>rnekte, yap<61>lan i<> ekrana yaz<61> yazmak).
PHP kodu <link linkend="language.basic-syntax.phpmode"><EFBFBD>zel ba<62>lang<6E><67> ve biti<74> etiketleri</link> aras<61>na yaz<61>l<EFBFBD>r.
Bu etiketler "PHP kipine" rahatl<74>kla girip <20><>kabilmenizi sa<73>larlar.
</para>
<para>
PHP&apos;yi Javascript gibi kullan<61>c<EFBFBD> taraf<61>nda <20>al<61><6C>an dillerden ay<61>ran,
sunucu taraf<61>nda <20>al<61><6C>t<EFBFBD>r<EFBFBD>l<EFBFBD>yor olmas<61>d<EFBFBD>r. Yukardaki <20>rnekteki kodu
kendi sunucunuzda <20>al<61><6C>t<EFBFBD>r<EFBFBD>rsan<61>z, sitenize ba<62>lanan kullan<61>c<EFBFBD>lar kodu
g<>remeyecekler ve m<>dahale edemeyecekler, yaln<6C>zca sonucu g<>rebileceklerdir.
Dilerseniz web sunucunuzu b<>t<EFBFBD>n HTML dosyalar<61>n<EFBFBD>z<EFBFBD> PHP dosyas<61> olarak g<>r<EFBFBD>p
i<>leyecek hale bile getirebilirsiniz. Buna ra<72>men kullan<61>c<EFBFBD>lar sizin ger<65>ekte
sunucu tarafl<66> bir uygulama kulland<6E><64><EFBFBD>n<EFBFBD>z<EFBFBD> fark edemeyebilirler.
</para>
<para>
PHP kullanman<61>n en g<>zel yanlar<61>ndan biri, yeni kullan<61>c<EFBFBD>lar i<>in <20><>reniminin olduk<75>a
kolay olmas<61> ve ayn<79> zamanda profesyonel kullan<61>c<EFBFBD>lar i<>in ileri seviyede
<20>zellikler i<>ermesidir. PHP&apos;nin uzun <20>zellikler listesini okumaktan korkmay<61>n.
K<>sa s<>rede PHP ile programlamaya ba<62>layabilir ve birka<6B> saat i<>ersinde
basit programlar yazmaya ba<62>layabilirsiniz.
</para>
<para>
PHP&apos;nin geli<6C>imi sunucu-tarafl<66> programlamaya odaklanm<6E><6D>sa da, <20>ok daha fazlas<61>n<EFBFBD>
yapman<61>za olanak tan<61>yan ara<72>lara da sahiptir.
<link linkend="intro-whatcando">PHP neler yapabilir?</link> b<>l<EFBFBD>m<EFBFBD>nden
bu ara<72>lar hakk<6B>nda daha fazla bilgiye ula<6C>abilirsiniz. E<>er yaln<6C>zca web programlama
ile ilgileniyorsan<61>z, <link linkend="tutorial">ba<EFBFBD>lang<EFBFBD><EFBFBD> e<>itmeni</link> b<>l<EFBFBD>m<EFBFBD>nden
devam edebilirsiniz.
</para>
</sect1>
<sect1 id="intro-whatcando">
<title>PHP neler yapabilir?</title>
<para>Her <20>eyi. PHP temel olarak sunucu-tarafl<66> programlamaya odaklanm<6E><6D>t<EFBFBD>r,
bu nedenle CGI uygulamalar<61>n<EFBFBD>n yapt<70><74><EFBFBD> her <20>eyi, <20>rne<6E>in formdan veri toplama,
dinamik sayfa i<>eri<72>i yaratma, ya da <20>erez al<61>p g<>nderme gibi i<>lemleri yapabilirsiniz.
Ancak PHP bunlardan <20>ok daha fazlas<61>n<EFBFBD> yapabilecek kapasitededir.
</para>
<para>
PHP betiklerinin kullan<61>ld<6C><64><EFBFBD> <20><> temel alan vard<72>r.
<itemizedlist>
<listitem>
<simpara>
Sunucu-tarafl<66> programlama. Bu PHP i<>in en geleneksel ve en temel olan aland<6E>r.
Sunucu-tarafl<66> programlama i<>in <20><> <20>eye sahip olman<61>z gerekir. PHP motoru (CG<43> ya da sunucu mod<6F>l<EFBFBD>),
bir web sunucu ve bir web taray<61>c<EFBFBD>s<EFBFBD>. Web sunucusunu PHP&apos;den anlar <20>ekilde kurman<61>z
ve <20>al<61><6C>t<EFBFBD>rman<61>z gerekir. PHP uygulamas<61>n<EFBFBD>n <20><>kt<6B>s<EFBFBD>na web taray<61>c<EFBFBD>s<EFBFBD> <20>zerinden eri<72>ebilirsiniz.
<link linkend="install">Kurulum bilgileri</link> b<>l<EFBFBD>m<EFBFBD>nden bununla ilgili daha fazla bilgiye ula<6C>abilirsiniz.
</simpara>
</listitem>
<listitem>
<simpara>
Komut sat<61>r<EFBFBD> uygulamalar<61>. Bir PHP uygulamas<61>n<EFBFBD> komut sat<61>r<EFBFBD>ndan hi<68>bir sunucu ya da taray<61>c<EFBFBD> uygulama
kullanmadan <20>al<61><6C>t<EFBFBD>rabilirsiniz. Burada tek ihtiyac<61>n<EFBFBD>z olan PHP motorudur. Bu tip kullan<61>m cron
<20>zerinden (Windows e<>de<64>eri g<>rev y<>neticisi) d<>zenli <20>al<61><6C>t<EFBFBD>r<EFBFBD>lan i<>lemler ya da basit metin-i<>lem
g<>revleri i<>in idealdir. <link linkend="features.commandline">PHP&apos;nin komut sat<61>r<EFBFBD>nda kullan<61>m<EFBFBD></link>
b<>l<EFBFBD>m<EFBFBD>nden daha detayl<79> bilgiye ula<6C>man<61>z m<>mk<6D>n.
</simpara>
</listitem>
<listitem>
<simpara>
<20>stemci taraf<61>nda <20>al<61><6C>an grafik aray<61>ze sahip uygulamalar.
PHP i<>in g<>rsel uygulamalar<61>n yaz<61>labilece<63>i en iyi dil diyemeyiz, ancak PHP&apos;yi iyi biliyorsan<61>z
ve PHP&apos;nin birtak<61>m ileri seviye <20>zelliklerini kendi istemci tarafl<66> uygulamalar<61>n<EFBFBD>zda
kullanmak istiyorsan<61>z, PHP-GTK eklentisini bu tip programlar yazmak i<>in kullanabilirsiniz.
Bu <20>ekilde platformdan ba<62><61>ms<6D>z uygulamalar yazma <20>ans<6E>na da sahip olmu<6D> olacaks<6B>n<EFBFBD>z.
PHP-GTK, PHP i<>in bir eklentidir ve ana da<64><61>t<EFBFBD>mda yer alm<6C>yor.
PHP-GTK ilginizi <20>ektiyse, <ulink url="&url.php.gtk;">kendi web sitesini</ulink> ziyaret edebilirsiniz.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
PHP b<>t<EFBFBD>n b<>y<EFBFBD>k i<>letim sistemlerinde, Linux, bir<69>ok Unix t<>revi (HP-UX, Solaris, OpenBSD vb.),
Microsoft Windows, Mac OS X, R<>SC OS dahil olmak <20>zere <20>e<EFBFBD>itli platformlarda <20>al<61><6C>abilir.
PHP benzer bi<62>imde bug<75>n yayg<79>n bi<62>imde kullan<61>lan web sunucular<61>n<EFBFBD>n b<>y<EFBFBD>k k<>sm<73>n<EFBFBD> destekler.
Bunlara Apache, Microsoft IIS, Microsoft PWS, Netscape ve iPlanet Sunucular<61>,
Oreilly Website Pro, Caudium, Xitami, OmniHTTPD ve daha bir<69>ok sunucuyu <20>rnek g<>sterebiliriz.
Bu sunucular<61>n <20>o<EFBFBD>unlu<6C>unda PHP mod<6F>l olarak kullan<61>labilir,
geri kalanlar<61>nda da CGI standard<72> kullan<61>larak PHP bir CGI i<>leyici olarak <20>al<61><6C>t<EFBFBD>r<EFBFBD>labilir.
</para>
<para>
Sonu<6E> olarak, PHP ile i<>letim sistemi ve web sunucusu se<73>me <20>zg<7A>rl<72><6C><EFBFBD>ne sahipsiniz.
Dahas<61>, hangi programlama y<>ntemini kullanaca<63><61>n<EFBFBD>za, fonksiyonel yakla<6C><61>m<EFBFBD> m<>
yoksa nesne y<>nelimli yakla<6C><61>m<EFBFBD> m<> yoksa her ikisini birden mi kullanaca<63><61>n<EFBFBD>za kendiniz karar verebilirsiniz.
B<>t<EFBFBD>n OOP (nesne y<>nelimli programlama) <20>zellikleri PHP&apos;nin <20>u andaki s<>r<EFBFBD>m<EFBFBD>nde
varolmasa da, bir<69>ok kod k<>t<EFBFBD>phanesi ve b<>y<EFBFBD>k uygulama (PEAR k<>t<EFBFBD>phanesi dahil) OOP kullan<61>larak yaz<61>lm<6C><6D>t<EFBFBD>r.
</para>
<para>
PHP yaln<6C>zca HTML <20><>kt<6B> <20>retmekle s<>n<EFBFBD>rl<72> de<64>ildir. PHP&apos;nin yetenekleri aras<61>nda resim <20><>kt<6B>s<EFBFBD> <20>retebilme,
PDF olu<6C>turabilme ve hatta Flash filmleri yaratabilme (libswf ve Ming kullanarak) bulunmaktad<61>r.
Ayn<79> <20>ekilde XHTML ya da XML gibi her t<>r metin tabanl<6E> dosyay<61> yaratabilmeniz m<>mk<6D>nd<6E>r.
PHP bu dosyalar<61> otomatik olarak yaratabilir ve ekrana yazd<7A>rmak haricinde sizin i<>in
dosya sisteminde saklayabilir, b<>ylece dinamik i<>eri<72>iniz i<>in sunucu-tarafl<66> bir depo sistemini kullan<61>m<EFBFBD>n<EFBFBD>za sunabilir.
</para>
<para>
PHP&apos;nin en g<><67>l<EFBFBD> ve en <20>ok <20>st<73>nde durulan <20>zelliklerinden biri, sahip oldu<64>u geni<6E> ve geli<6C>mi<6D> veritaban<61> deste<74>idir.
PHP ile veritaban<61> ba<62>lant<6E>l<EFBFBD> web sayfalar<61> yaratmak son derece basittir. A<>a<EFBFBD><61>da desteklenen veritabanlar<61>n<EFBFBD>n listesi bulunmaktad<61>r:
<blockquote>
<simplelist columns="3">
<member>Adabas D</member>
<member>dBase</member>
<member>Empress</member>
<member>FilePro (salt-okunur)</member>
<member>Hyperwave</member>
<member>IBM DB2</member>
<member>Informix</member>
<member>Ingres</member>
<member>InterBase</member>
<member>FrontBase</member>
<member>mSQL</member>
<member>Direct MS-SQL</member>
<member>MySQL</member>
<member>ODBC</member>
<member>Oracle (OCI7 ve OCI8)</member>
<member>Ovrimos</member>
<member>PostgreSQL</member>
<member>SQLite</member>
<member>Solid</member>
<member>Sybase</member>
<member>Velocis</member>
<member>Unix dbm</member>
</simplelist>
</blockquote>
Bunlar<61>n haricinde DBX ad<61> verilen uzant<6E> ile farkl<6B> veritabanlar<61> i<>in ayn<79> kodu
kullanarak kodlama yapabilirsiniz. PHP, ek olarak ODBC&apos;yi, yani A<><41>k Veritaban<61> Ba<42>lant<6E> standard<72>n<EFBFBD>
destekler, bu <20>ekilde ODBC&apos;yi destekleyen t<>m veritabanlar<61> ile ileti<74>im kurabilirsiniz.
</para>
<para>
PHP, farkl<6B> hizmetlerle LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM
(Windows i<>in) ve daha say<61>s<EFBFBD>z protokol arac<61>l<EFBFBD><6C><EFBFBD>yla konu<6E>abilecek bir altyap<61>ya da sahiptir.
Haz<61>r mod<6F>llerin haricinde ham a<> soketleri a<><61>p bu soketler <20>zerinden istedi<64>iniz b<>t<EFBFBD>n
protokollerle <20>al<61><6C>abilirsiniz. PHP, WDDX <20>zerinden sanal olarak web <20>zerinde hangi dilde
yaz<61>lm<6C><6D> olursa olsun t<>m uygulamalarla haberle<6C>ebilir. Ayr<79>ca Java nesnelerinin yarat<61>labilmesi
ve saydam (transparent) bi<62>imde PHP nesneleri olarak kullan<61>labilmeleri <20>nemli bir di<64>er <20>zelliktir.
Uzaktaki nesnelere eri<72>im i<>in CORBA uzant<6E>s<EFBFBD>, yine PHP&apos;nin sahip oldu<64>u <20>zellikler aras<61>ndad<61>r.
</para>
<para>
PHP olduk<75>a faydal<61> dok<6F>man i<>leme <20>zelliklerine sahiptir. Bu yelpaze Geni<6E>letilmi<6D> POS<4F>X ya da
Perl d<>zenli ifade (regular expressions) komutlar<61>ndan XML dosyalar<61>n<EFBFBD> okumaya kadar uzan<61>r.
XML dosyalar<61>n<EFBFBD>n okunmas<61> ve eri<72>imi i<>in SAX ve DOM standartlar<61>n<EFBFBD> destekler.
XSLT uzant<6E>s<EFBFBD> ile XML dok<6F>manlar<61>n<EFBFBD>n bi<62>imlendirilmesi yap<61>labilir. PHP 5 t<>m XML uzant<6E>lar<61>n<EFBFBD>
libxml2 taban<61>nda tek bir standartta toplam<61><6D> ve SimpleXML ile XMLReader deste<74>ini b<>nyesine
katarak sundu<64>u imkan yelpazesini geni<6E>letmi<6D>tir.
</para>
<para>
PHP&apos;yi e-ticaret alan<61>nda kullan<61>rken, Cybercash <20>deme sistemi, CyberMUT, VeriSign Payflow
Pro ve MCVE fonksiyonlar<61>n<EFBFBD> kullanabilir ve <20>evrimi<6D>i <20>deme uygulamalar<61>n<EFBFBD>z<EFBFBD> ger<65>ekle<6C>tirebilirsiniz.
</para>
<para>
Bunlar<61>n d<><64><EFBFBD>nda, mnoGoSearch arama motoru, IRC a<> ge<67>idi uzant<6E>lar<61>, bir<69>ok s<>k<EFBFBD><6B>t<EFBFBD>rma arac<61> (gzip, bz2) i<>in yard<72>mc<6D> ara<72>lar,
takvim ara<72>lar<61>, dil <20>eviri fonksiyonlar<61> yine PHP&apos;nin sunmakta oldu<64>u ilgin<69> uzant<6E>lardan baz<61>lar<61>d<EFBFBD>r.
</para>
<para>
Sizin de g<>rebildi<64>iniz gibi bu sayfa PHP&apos;nin sunabilece<63>i b<>t<EFBFBD>n <20>zellikleri ve faydalar<61> anlatabilmek
i<>in yeterli de<64>il. <link linkend="install">PHP kurulumu</link> b<>l<EFBFBD>m<EFBFBD>nde ve <link linkend="funcref">fonksiyon ba<62>vuru kayna<6E><61></link>nda
listelenen uzant<6E>lar<61>n ba<62>lang<6E><67> b<>l<EFBFBD>mlerindeki a<><61>klamalardan her bir uzant<6E> i<>in daha fazla bilgiye ula<6C>abilirsiniz.
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->