mirror of
https://github.com/php/doc-tr.git
synced 2026-03-23 23:02:09 +01:00
1949 lines
61 KiB
XML
1949 lines
61 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 8cb32bd2c0f0b8a95ebb84b211920fe10d4c2679 Maintainer: yasar Status: ready -->
|
||
<chapter xml:id="features.commandline" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<title>PHP'nin komut satırından kullanımı</title>
|
||
<titleabbrev>Komut satırından kullanım</titleabbrev>
|
||
|
||
<!--Introduction: {{{-->
|
||
<section xml:id="features.commandline.introduction" annotations="chunk:false">
|
||
<title>Giriş</title>
|
||
<para>
|
||
&cli.sapi;'nin ana odağı PHP ile kabuk (veya masaüstü) uygulamaları
|
||
geliştirmektir. &cli; <acronym>SAPI</acronym>'nin bu bölümde anlatılan diğer
|
||
<literal>SAPI</literal>'lerden az bir farkı vardır. Söylemek gerekir ki,
|
||
her ne kadar &cli; ve <acronym>CGI</acronym> birçok aynı
|
||
davranışı paylaşsa da farklı <acronym>SAPI</acronym>'lerdir.
|
||
</para>
|
||
|
||
<para>
|
||
&cli; <acronym>SAPI</acronym>
|
||
<option role="configure">--enable-cli</option> ile öntanımlı olarak
|
||
etkin kılınır. Etkinliğini kaldırmak için <command>./configure</command>
|
||
betiğinde <option role="configure">--disable-cli</option> seçeneğini
|
||
kullanabilirsiniz.
|
||
</para>
|
||
|
||
<para>
|
||
PHP 4.3.0'dan beri, &cli;/CGI çalıştırılabilirinin adı, yeri ve mevcudiyeti
|
||
PHP'nin sisteminize nasıl kurulduğuna bağlı olarak değişecektir.
|
||
<command>make</command> çalıştırıldığında öntanımlı olarak, hem CGI hem de
|
||
&cli; derlenir ve PHP kaynak ağacında <filename>sapi/cgi/php-cgi</filename>
|
||
ve <filename>sapi/cli/php</filename> dizinlerine ayrı yerleştirilirler.
|
||
Her ikisinin de adının php olduğunu farkedeceksiniz. <command>make
|
||
install</command> çalıştırıldığında ne yaşanacağı yapılandırma satırınıza
|
||
bağlıdır. Eğer yapılandırma sırasında apxs gibi bir SAPI modülü
|
||
seçildiyse, veya <option role="configure">--disable-cgi</option> seçeneği
|
||
kullanıldıysa, <command>make install</command> sırasında &cli;
|
||
<filename>{PREFIX}/bin/php</filename> dizinine kopyalanır, aksi takdirde
|
||
buraya CGI yerleştirilir. Örneğin, <option role="configure">--with-apxs
|
||
</option> yapılandırma satırınızda ise <command>make install</command>
|
||
sırasında &cli; <filename>{PREFIX}/bin/php</filename> dizinine kopyalanır.
|
||
Eğer CGI kurulumunu etkisiz kılmak isterseniz, <command>make
|
||
install</command>'dan sonra <command>make install-cli</command> kullanın.
|
||
Ya da yapılandırma satırınızda <option
|
||
role="configure">--disable-cgi</option> belirtebilirsiniz.
|
||
</para>
|
||
|
||
<note>
|
||
<para>
|
||
<option role="configure">--enable-cli</option> ve
|
||
<option role="configure">--enable-cgi</option> öntanımlı olarak
|
||
etkinleştirildiği için, yapılandırma satırınızda sadece <option
|
||
role="configure">--enable-cli</option> olması &cli;'nin <command>make
|
||
install</command> sırasında <filename>{PREFIX}/bin/php</filename>
|
||
dizinine kopyalanacağı anlamına gelmez.
|
||
</para>
|
||
</note>
|
||
|
||
<para>
|
||
PHP 4.2.0 ve PHP 4.2.3 arasındaki Windows paketlerinde &cli;
|
||
<filename>php-cli.exe</filename> olarak, CGI da aynı dizinde
|
||
<filename>php.exe</filename> olarak dağıtılmıştır. PHP 4.3.0'la başlayarak
|
||
Windows paketlerinde &cli;, <filename class="directory">cli</filename> adlı
|
||
farklı bir dizinde <filename>php.exe</filename> olarak dağıtılmıştır,
|
||
böylece <filename>cli/php.exe</filename> olmuştur. PHP 5'le başlayarak,
|
||
&cli; ana dizinde <filename>php.exe</filename> adıyla dağıtılmıştır. CGI
|
||
sürümü <filename>php-cgi.exe</filename> olarak dağıtılmaktadır.
|
||
</para>
|
||
|
||
<para>
|
||
&cli; sürümü ana dizinde <filename>php.exe</filename> isminde
|
||
<acronym>CGI</acronym> sürümü ise <filename>php-cgi.exe</filename>
|
||
isminde bir dosya ile dağıtılmaktadır. Buna ek olarak,
|
||
PHP'nin <option role="configure">--enable-cli-win32</option> ile
|
||
yapılandırılması halinde dağıtım <filename>php-win.exe</filename>
|
||
dosyasını da içerir. <filename>php-win.exe</filename> &cli; sürümü ile
|
||
aynıdır, fakat<filename>php-win.exe</filename> herhangi çıktı vermez,
|
||
bu nedenle konsolu desteklemez (ekranda "dos penceresi" görünmez).
|
||
</para>
|
||
|
||
<note>
|
||
<title>Bende hangi SAPI var?</title>
|
||
<para>
|
||
Kabuktan, <command>php -v</command> yazımı <filename>php</filename> CGI
|
||
mı &cli; mi olduğunu söyler. Ayrıca <function>php_sapi_name</function>
|
||
işlevine ve <constant> PHP_SAPI</constant> sabitine bakınız.
|
||
</para>
|
||
</note>
|
||
|
||
<note>
|
||
<para>
|
||
PHP 4.3.2'de bir Unix kılavuz (<literal>man</literal>) sayfası eklendi.
|
||
Bunu kabuk ortamında <command>man php</command> yazarak
|
||
görüntüleyebilirsiniz.
|
||
</para>
|
||
</note>
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<!--Differences: {{{-->
|
||
<section xml:id="features.commandline.differences">
|
||
<title>Diğer <literal>SAPI</literal>'lerden dikkate değer farklılıklar</title>
|
||
|
||
<para>
|
||
&cli; <acronym>SAPI</acronym>'nin diğer
|
||
<literal>SAPI</literal>'lerden dikkate değer farklılıkları:
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>
|
||
&cli; <acronym>SAPI</acronym>'den farklı olarak,
|
||
çıktıya hiçbir başlık yazılmaz.
|
||
</para>
|
||
<para>
|
||
<acronym>CGI</acronym> <acronym>SAPI</acronym> HTTP başlıklarını önlemek
|
||
için bir yol sunsa da, &cli; <acronym>SAPI</acronym>'de
|
||
onları etkinleştirecek eşdeğer bir seçenek yoktur.
|
||
</para>
|
||
<para>
|
||
&cli; öntanımlı olarak sessiz kipte başlar,
|
||
<option>-q</option> ve <option>--no-header</option> seçenekleri eski CGI
|
||
betiklerinin kullanımına uyumluluk için tutulmaktadır.
|
||
</para>
|
||
<para>
|
||
Çalışma dizinini betiğinki ile aynı yapmaz. (<option>-C</option> ve
|
||
<option>--no-chdir</option> seçenekleri uyumluluk için tutulmaktadır)
|
||
</para>
|
||
<para>
|
||
Düz metin hata iletileri (<acronym>HTML</acronym> biçimlendirmesi yok).
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Kabuk ortamında birşey ifade etmedikleri için &cli;
|
||
<acronym>SAPI</acronym> tarafından geçersiz kılınan bazı &php.ini;
|
||
yönergeleri vardır:
|
||
</para>
|
||
<para>
|
||
<table>
|
||
<title>Geçersiz kılınan &php.ini; yönergeleri</title>
|
||
<tgroup cols="3">
|
||
<thead>
|
||
<row>
|
||
<entry>Yönerge</entry>
|
||
<entry>&cli; <acronym>SAPI</acronym> öntanımlı değeri</entry>
|
||
<entry>Yorum</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><link linkend="ini.html-errors">html_errors</link></entry>
|
||
<entry>&false;</entry>
|
||
<entry>
|
||
Hata iletileri <acronym>HTML</acronym> etiketleri ile
|
||
karıştırılmışken, kabukta bunları okumak oldukça zor olacağı için
|
||
bu yönerge öntanımlı olarak &false; değerlidir.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.implicit-flush"
|
||
>implicit_flush</link></entry>
|
||
<entry>&true;</entry>
|
||
<entry>
|
||
Kabuk ortamında,
|
||
<function>print</function>, <function>echo</function> ve
|
||
arkadaşlarından gelen çıktıların önbellekte tutulmadan hemen
|
||
çıktıya yazılması istenir. Eğer standart çıktıyı ertelemek veya
|
||
işlemek isterseniz <link linkend="ref.outcontrol">çıktı
|
||
önbellekleme</link> kullanabilirsiniz.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.max-execution-time"
|
||
>max_execution_time</link></entry>
|
||
<entry>0 (sınırsız)</entry>
|
||
<entry>
|
||
<acronym>HTML</acronym> üretmek için yazılan uygulamalar genellikle
|
||
çok çabuk işletilse de, kabuk ortamlarında PHP kullanımının sonsuz
|
||
olasılığı olduğu için, kabuk uygulamaları daha fazla işletim zamanı
|
||
harcama eğilimindedirler, bu nedenle azami işletim süresi sınırsız
|
||
olarak belirtilmiştir.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.register-argc-argv"
|
||
>register_argc_argv</link></entry>
|
||
<entry>&true;</entry>
|
||
<entry>
|
||
<para>
|
||
Bu ayarın &true; olması, &cli; <acronym>SAPI</acronym>de
|
||
çalıştırılan betiklerin <emphasis>argc</emphasis> (uygulamaya
|
||
aktarılan bağımsız değişken sayısı) ve <emphasis>argv</emphasis> (gerçek
|
||
bağımsız değişkenler dizisi) değerlerine her zaman erişebilmesi anlamına
|
||
gelir.
|
||
</para>
|
||
<para>
|
||
&cli; <acronym>SAPI</acronym> kullanırken <varname>$argc</varname>
|
||
ve <varname>$argv</varname> PHP değişkenleri uygun değerlere
|
||
ayarlanır. Bu değerleri <varname>$_SERVER</varname> dizisinde de
|
||
bulabilirsiniz. Örnek: <varname>$_SERVER['argv']</varname>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.output-buffering">output_buffering</link></entry>
|
||
<entry>&false;</entry>
|
||
<entry>
|
||
<para>
|
||
Bu yönergenin öntanımlı değeri &false; olmasına rağmen
|
||
<link linkend="book.outcontrol">Çıktı tamponlama</link> işlevleri
|
||
kullanılabilmektedir.
|
||
functions
|
||
are available.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.max-input-time">max_input_time</link></entry>
|
||
<entry>&false;</entry>
|
||
<entry>
|
||
<para>
|
||
PHP CLI, GET, POST ve dosyaların karşıya yüklenmesini desteklemez.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Bu yönergeler &php.ini; yapılandırma dosyasından veya özel bir
|
||
yapılandırma dosyasından başka bir değerle ilklendirilemezler. Bu
|
||
sınırlamanın sebebi bu değerlerin bütün yapılandırma dosyaları
|
||
çözümlendikten sonra uygulanmasıdır. Fakat,
|
||
çalışma anında bunların değerleri değişirilebilir (olsa da
|
||
<link linkend="ini.register-argc-argv">register_argc_argv</link> gibi
|
||
bazıları için bu bir şey değiştirmez).
|
||
</para>
|
||
</note>
|
||
<note>
|
||
<para>
|
||
Komut satırı betikleri için <link
|
||
linkend="ini.ignore-user-abort">ignore_user_abort</link> yönergesinin
|
||
<literal>On</literal> olması önerilir. Daha fazla bilgi için
|
||
<function>ignore_user_abort</function> işlevine bakınız.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Kabuk ortamında <link linkend="features.commandline.io-streams">G/Ç
|
||
akımları</link> ile kolay çalışmak için bazı sabitler tanımlanmıştır.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
&cli; <acronym>SAPI</acronym> geçerli dizini betiğin
|
||
işletildiği dizine <emphasis role="strong">değiştirmez</emphasis>.
|
||
</para>
|
||
<example>
|
||
<title>-
|
||
&cli; <acronym>SAPI</acronym> farkını gösteren örnek:
|
||
</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// deneme.php isimli basit deneme uygulamamız
|
||
echo getcwd(), "\n";
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
<para>
|
||
<acronym>CGI</acronym> sürümününü kullanınca, çıktı şöyle olur:
|
||
</para>
|
||
<screen>
|
||
<![CDATA[
|
||
$ pwd
|
||
/tmp
|
||
|
||
$ php -q bir_dizin/deneme.php
|
||
/tmp/bir_dizin
|
||
]]>
|
||
</screen>
|
||
<para>
|
||
Bu açıkça gösteriyor ki PHP geçerli dizinini betiğin çalıştığı dizine
|
||
değiştiriyor.
|
||
</para>
|
||
<para>
|
||
&cli; <acronym>SAPI</acronym> kullanımı sonucu:
|
||
</para>
|
||
<screen>
|
||
<![CDATA[
|
||
$ pwd
|
||
/tmp
|
||
|
||
$ php -f bir_dizin/deneme.php
|
||
/tmp
|
||
]]>
|
||
</screen>
|
||
<para>
|
||
Bu, PHP'de kabuk araçları yazarken daha fazla esneklik imkanı verir.
|
||
</para>
|
||
</example>
|
||
<note>
|
||
<para>
|
||
<acronym>CGI</acronym> <acronym>SAPI</acronym> bu &cli;
|
||
<acronym>SAPI</acronym> davranışını komut satırından çalışırken
|
||
<option>-C</option> seçeneği ile destekler.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</para>
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<!--Options: {{{-->
|
||
<section xml:id="features.commandline.options">
|
||
<title>Komut satırı seçenekleri</title>
|
||
<titleabbrev>Seçenekler</titleabbrev>
|
||
|
||
<para>
|
||
PHP çalıştırılabiliri tarafından desteklenen komut satırı seçenekleri
|
||
listesi istenirse PHP <option>-h</option> seçeneği ile çalıştırılarak
|
||
sorgulanabilir:
|
||
<screen>
|
||
<![CDATA[
|
||
Kullanım: php [seçenekler] [-f] <dosya> [--] [bağımsız değişkenler...]
|
||
php [seçenekler] -r <kod> [--] [bağımsız değişkenler...]
|
||
php [seçenekler] [-B <başlangıç_kodu>] -R <kod> [-E <bitiş_kodu>] [--] [bağımsız değişkenler...]
|
||
php [seçenekler] [-B <başlangıç_kodu>] -F <dosya> [-E <bitiş_kodu>] [--] [bağımsız değişkenler...]
|
||
php [seçenekler] -- [bağımsız değişkenler...]
|
||
php [seçenekler] -a
|
||
|
||
-a Etkileşimli çalışır
|
||
-c <yol>|<dosya> php.ini dosyası bu dizinde aranır
|
||
-n Hiçbir php.ini dosyası kullanılmayacak
|
||
-d foo[=bar] 'bar' değerli bir foo INI girdisi tanımlar
|
||
-e Hata ayıklayıcı/profilci için genişletilmiş bilgi üretir
|
||
-f <dosya> <dosya>'yı çözümler ve çalıştırır
|
||
-h Bu yardım iletisini gösterir
|
||
-i PHP bilgisi
|
||
-l Sadece söz dizimi denetimi (lint)
|
||
-m Modül olarak derlenenleri gösterir
|
||
-r <kod> PHP <kod>unu <?..?> betik etiketleri olmadan çalıştırır
|
||
-B <başlangıç_kodu> PHP <başlangıç_kodu>nu girdi satırlarından önce
|
||
çalıştırır
|
||
-R <kod> PHP <kod>unu her girdi satırı için çalıştırır
|
||
-F <dosya> Her girdi satırı için <dosya>yı çözümler ve çalıştırır
|
||
-E <bitiş_kodu> PHP <bitiş_kodu>nu bütün girdi satırlarını işledikten
|
||
sonra çalıştırır
|
||
-H Harici araçlardan aktarılan bütün bağımsız değişkenleri gizler
|
||
-S <addr>:<port> Yerleşik HTTP sunucusu ile çalıştırır
|
||
-t <belgekök> Yerleşik HTTP sunucusu için belge kök dizini belirtilir
|
||
-s Kaynağı renklendirilmiş söz dizimi ile çıktılar
|
||
-v Sürüm bilgilerini gösterir
|
||
-w Kaynağı boşluklar ve yorumlardan arındırılmış olarak
|
||
çıktılar
|
||
-z <dosya> <dosya> Zend eklentisini yükler
|
||
|
||
bağımsız değişkenler... Betiğe aktarılan bağımsız değişkenler. Eğer betik stdin'den
|
||
okunuyorsa veya ilk bağımsız değişken - ile başlıyorsa
|
||
-- bağımsız değişkenler kullanın
|
||
|
||
--ini Yapılandırma dosyası isimlerini gösterir
|
||
|
||
--rf <isim> <isim> işlevi hakkında bilgi gösterir
|
||
--rc <isim> <isim> sınıfı hakkında bilgi gösterir
|
||
--re <isim> <isim> eklentisi hakkında bilgi gösterir
|
||
--rz <isim> <isim> Zend eklentisi hakkında bilgi gösterir
|
||
--ri <isim> <isim> eklentisi için yapılandırmayı gösterir
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
<para>
|
||
<table>
|
||
<title>Komut satırı seçenekleri</title>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Seçenek</entry>
|
||
<entry>Uzun Seçenek</entry>
|
||
<entry>Açıklama</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>-a</entry>
|
||
<entry>--interactive</entry>
|
||
<entry>
|
||
<para>
|
||
PHP'yi etkileşimli çalıştırır.Daha ayrıntılı bilgi için
|
||
<link linkend="features.commandline.interactive">Etkileşimli
|
||
kabuk</link> konusuna bakınız.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-b</entry>
|
||
<entry>--bindpath</entry>
|
||
<entry>
|
||
<para>
|
||
Harici FASTCGI Sunucusu kipi için dizin yolu (sadece CGI için).
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-C</entry>
|
||
<entry>--no-chdir</entry>
|
||
<entry>
|
||
<para>
|
||
Betiğin bulunduğu dizine chdir yapılmaz (sadece CGI için).
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-q</entry>
|
||
<entry>--no-header</entry>
|
||
<entry>
|
||
<para>
|
||
Sessiz kip. HTTP başlığının çıktılanmasını engeller (sadece CGI için).
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-T</entry>
|
||
<entry>--timing</entry>
|
||
<entry>
|
||
<para>
|
||
Betiğin çalışma süresini <varname>sayı</varname> kere ölçer (sadece
|
||
CGI için).
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-c</entry>
|
||
<entry>--php-ini</entry>
|
||
<entry>
|
||
<para>
|
||
Bu seçenek &php.ini; dosyasının aranacağı dizini veya özel bir
|
||
<literal>INI</literal> dosyasını (adı &php.ini; olmak zorunda
|
||
değildir) belirtebilir. Örneğin:
|
||
</para>
|
||
<para><informalexample>
|
||
<screen>
|
||
<![CDATA[
|
||
$ php -c /ozel/dizin/ ornek_betik.php
|
||
|
||
$ php -c /ozel/dizin/ozel-dosya.ini ornek_betik.php
|
||
]]>
|
||
</screen>
|
||
</informalexample></para>
|
||
<para>
|
||
Eğer bu seçeneği belirtmezseniz, &php.ini; <link
|
||
linkend="configuration.file">öntanımlı dizinler</link>de aranır.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-n</entry>
|
||
<entry>--no-php-ini</entry>
|
||
<entry>
|
||
<para>
|
||
&php.ini;yi tamamen görmezden gel.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-d</entry>
|
||
<entry>--define</entry>
|
||
<entry>
|
||
<para>
|
||
&php.ini;de izin verilen yapılandırma yönergelerinden
|
||
herhangi birine özel değer atamanıza imkan verir. Söz dizimi:
|
||
<screen>
|
||
<![CDATA[
|
||
-d ayar_yönergesi[=değer]
|
||
]]>
|
||
</screen>
|
||
</para>
|
||
<para><example>
|
||
<title>INI ayarını belirlemek için <literal>-d</literal> kullanımı</title>
|
||
<screen>
|
||
<![CDATA[
|
||
# Değer kısmını atlamak yapılandırma yönergesini "1" yapar
|
||
$ php -d max_execution_time
|
||
-r '$foo = ini_get("max_execution_time"); var_dump($foo);'
|
||
string(1) "1"
|
||
|
||
# Boş değer aktarınca yapılandırma yönergesinine "" atanır
|
||
php -d max_execution_time=
|
||
-r '$foo = ini_get("max_execution_time"); var_dump($foo);'
|
||
string(0) ""
|
||
|
||
# Yapılandırma yönergesine '=' karakterinden sonra aktarılan değer atanır
|
||
$ php -d max_execution_time=20
|
||
-r '$foo = ini_get("max_execution_time"); var_dump($foo);'
|
||
string(2) "20"
|
||
$ php
|
||
-d max_execution_time=herhangi_bir_sey
|
||
-r '$foo = ini_get("max_execution_time"); var_dump($foo);'
|
||
string(15) "herhangi_bir_sey"
|
||
]]>
|
||
</screen>
|
||
</example></para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-e</entry>
|
||
<entry>--profile-info</entry>
|
||
<entry>
|
||
<para>
|
||
Hata ayıklayıcı/profilci için kullanılmak üzere genişletilmiş bilgi kipini etkinleştirir.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-f</entry>
|
||
<entry>--file</entry>
|
||
<entry>
|
||
<para>
|
||
Belirtilen dosya adını çözümler ve çalıştırır. <option>-f</option>
|
||
seçeneği isteğe bağlıdır; verilmese de olur. Sadece
|
||
çalıştırılacak dosya adını belirtmek yeterlidir.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-h ve -?</entry>
|
||
<entry>--help ve --usage</entry>
|
||
<entry>
|
||
Komut satırı seçenekleri tek satırlık açıklamalarıyla
|
||
listelenir.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-i</entry>
|
||
<entry>--info</entry>
|
||
<entry>
|
||
<function>phpinfo</function> işlevini çağırır ve sonuçları yazdırır.
|
||
Eğer PHP doğru çalışmıyorsa, <command>php -i</command> komutunu
|
||
kullanmanız ve bilgi tablolarından önce herhangi bir hata iletisi
|
||
yazdırılmış mı diye bakmanız tavsiye edilir. CGI kipini kullanırken
|
||
çıktının <acronym>HTML</acronym> biçiminde olacağını ve bu nedenle
|
||
çok büyük ve karmaşık olacağını dikkate alınız.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-l</entry>
|
||
<entry>--syntax-check</entry>
|
||
<entry>
|
||
<para>
|
||
Bu seçenek verilen PHP kodunun sadece söz dizimini denetlemek için
|
||
uygun bir yol sağlar. Başarı halinde, <literal>No syntax errors
|
||
detected in <filename></literal> metni standart çıktıya
|
||
yazılır ve kabuk dönüş kodu <literal>0</literal> olur. Başarısızlık
|
||
halinde, iç çözümleyici hatasına ilaveten <literal>Errors parsing
|
||
<filename></literal> metni standart çıktıya yazılır ve kabuk
|
||
dönüş kodu <literal>-1</literal> olur.
|
||
</para>
|
||
<para>
|
||
Bu seçenek ölümcül hataları bulamaz (tanımlanmamış işlevler gibi).
|
||
Ölümcül hataları da denetlemek için <option>-f</option>
|
||
seçeneğini kullanın.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Bu seçenek <option>-r</option> seçeneği ile birlikte kullanılamaz.
|
||
</para>
|
||
</note>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-m</entry>
|
||
<entry>--modules</entry>
|
||
<entry>
|
||
<para><example>
|
||
<title>-
|
||
Yerleşik (ve yüklü) PHP ve Zend modüllerinin listelenmesi
|
||
</title>
|
||
<screen>
|
||
<![CDATA[
|
||
$ php -m
|
||
[PHP Modules]
|
||
xml
|
||
tokenizer
|
||
standard
|
||
session
|
||
posix
|
||
pcre
|
||
overload
|
||
mysql
|
||
mbstring
|
||
ctype
|
||
|
||
[Zend Modules]
|
||
]]>
|
||
</screen>
|
||
</example></para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-r</entry>
|
||
<entry>--run</entry>
|
||
<entry>
|
||
<para>
|
||
PHP'nin komut satırından çalıştırılmasına izin verir. PHP
|
||
başlangıç ve bitiş etiketleri (<literal><?php</literal> ve
|
||
<literal>?></literal>) <emphasis
|
||
role="strong">gerekmez</emphasis> ve eğer bulunurlarsa çözümleme
|
||
hatasına neden olurlar.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
PHP'nin bu şekilde kullanımı halinde kabuk tarafından yapılan
|
||
komut satırı değişken değişimleri ile çakışmamak için özen
|
||
göstermek gerekir.
|
||
</para>
|
||
<example>
|
||
<title>-
|
||
Çift tırnak kullanımında bir çözümleme hatasının gösterilmesi
|
||
</title>
|
||
<screen>
|
||
<![CDATA[
|
||
$ php -r "$foo = get_defined_constants();"
|
||
Command line code(1) : Parse error - parse error, unexpected '='
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
<para>
|
||
Buradaki sorun sh/bash kabuklarının çift tırnak
|
||
<literal>"</literal> kullanıldığında bile değişken değişimi
|
||
yapmalarından kaynaklanır. <varname>$foo</varname> değişkeni
|
||
kabukta tanımlanmış olmayacağı için, PHP'ye çalıştırılmak üzere
|
||
aktarılan kodda hiçbir şey olarak yorumlanacaktır:
|
||
</para>
|
||
<informalexample>
|
||
<screen>
|
||
<![CDATA[
|
||
$ php -r " = get_defined_constants();"
|
||
]]>
|
||
</screen>
|
||
</informalexample>
|
||
<para>
|
||
Doğru yol tek tırnak <literal>'</literal> kullanımıdır. Tek tırnak
|
||
içindeki değişkenler sh/bash tarafından dönüştürülmezler.
|
||
</para>
|
||
<example>
|
||
<title>- Kabuğun değişken dönüşümü yapmasını engellemek için tek
|
||
tırnakların kullanımı</title>
|
||
<screen>
|
||
<![CDATA[
|
||
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
|
||
array(370) {
|
||
["E_ERROR"]=>
|
||
int(1)
|
||
["E_WARNING"]=>
|
||
int(2)
|
||
["E_PARSE"]=>
|
||
int(4)
|
||
["E_NOTICE"]=>
|
||
int(8)
|
||
["E_CORE_ERROR"]=>
|
||
[...]
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
<para>
|
||
Eğer sh/bash haricinde bir kabuk kullanıyorsanız, daha farklı
|
||
sorunlarla karşılaşabilirsiniz. Bu gibi durumlarda <link
|
||
xlink:href="&url.php.bugs;">&url.php.bugs;</link> adresinde hata
|
||
raporu açmaktan çekinmeyiniz. Kabuk değişkenlerini kodunuza almaya
|
||
çalıştığınızda veya önceleme için ters bölü kullanımında
|
||
sıkıntılar yaşayabilirsiniz.
|
||
</para>
|
||
</note>
|
||
<note>
|
||
<para>
|
||
<option>-r</option> seçeneği &cli.sapi;'de
|
||
bulunur, <emphasis>CGI</emphasis> SAPI'de bulunmaz.
|
||
</para>
|
||
</note>
|
||
<note>
|
||
<para>
|
||
Bu seçenek çok temel kodlar için tasarlanmıştır. Bazı yapılandırma
|
||
yönergeleri (örn. <link linkend="ini.auto-prepend-file"
|
||
>auto_prepend_file</link> ve <link linkend="ini.auto-append-file"
|
||
>auto_append_file</link>) bu kipte
|
||
görmezden gelinir.
|
||
</para>
|
||
</note>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-B</entry>
|
||
<entry>--process-begin</entry>
|
||
<entry>
|
||
<para>
|
||
Standart girdi işlenmeden çalıştırılacak PHP kodudur.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-R</entry>
|
||
<entry>--process-code</entry>
|
||
<entry>
|
||
<para>
|
||
Her girdi satırı için işletilecek PHP kodudur.
|
||
</para>
|
||
<para>
|
||
Bu kipte iki özel değişken bulunur:
|
||
<varname>$argn</varname> ve <varname>$argi</varname>.
|
||
<varname>$argn</varname> PHP'nin o anda işlediği satırı içerirken,
|
||
<varname>$argi</varname> satır numarasını içerir.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-F</entry>
|
||
<entry>--process-file</entry>
|
||
<entry>
|
||
<para>
|
||
Her girdi satırı için işletilecek PHP dosyasıdır.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-E</entry>
|
||
<entry>--process-end</entry>
|
||
<entry>
|
||
<para>
|
||
Girdi işlendikten sonra işletilecek PHP kodudur.
|
||
</para>
|
||
<para><example>
|
||
<title>- Bir projedeki satır sayısını saymak için
|
||
<option>-B</option>, <option>-R</option> ve <option>-E</option>
|
||
seçeneklerinin kullanımı</title>
|
||
<screen>
|
||
<![CDATA[
|
||
$ find projem | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Toplam Satır Sayısı: $l\n";'
|
||
Toplam Satır Sayısı: 37328
|
||
]]>
|
||
</screen>
|
||
</example></para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-S</entry>
|
||
<entry>--server</entry>
|
||
<entry>
|
||
<para>
|
||
<link linkend="features.commandline.webserver">Yerleşik HTTP
|
||
sunucusunu</link> başlatır.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-t</entry>
|
||
<entry>--docroot</entry>
|
||
<entry>
|
||
<link linkend="features.commandline.webserver">Yerleşik HTTP
|
||
sunucusuna</link> belge kökünü belirtir.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-s</entry>
|
||
<entry>--syntax-highlight ve --syntax-highlighting</entry>
|
||
<entry>
|
||
<para>
|
||
Renklendirilmiş söz dizimi ile kaynak gösterimi.
|
||
</para>
|
||
<para>
|
||
Bu seçenek dosyayı çözümlemek için içsel yöntemleri kullanır ve
|
||
renklendirilmiş bir <acronym>HTML</acronym> sürümü üreterek standart
|
||
çıktıya yazar. Bütün yaptığı <acronym>HTML</acronym> başlıkları
|
||
olmadan <literal><code> [...] </code></literal>
|
||
<acronym>HTML</acronym> etiketlerinden oluşan bir blok üretmektir.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Bu seçenek <option>-r</option> seçeneği ile birlikte çalışmaz.
|
||
</para>
|
||
</note>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-v</entry>
|
||
<entry>--version</entry>
|
||
<entry>
|
||
<para><example>
|
||
<title>-
|
||
PHP ve Zend sürümleri ile <acronym>SAPI</acronym> ismini çıktılamak
|
||
için <option>-v</option> kullanımı
|
||
</title>
|
||
<screen>
|
||
<![CDATA[
|
||
$ php -v
|
||
PHP 5.3.0alpha3-dev (cli) (built: Nov 13 2008 18:20:00)
|
||
Copyright (c) 1997-2008 The PHP Group
|
||
Zend Engine v2.3.0, Copyright (c) 1998-2008 Zend Technologies
|
||
]]>
|
||
</screen>
|
||
</example></para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-w</entry>
|
||
<entry>--strip</entry>
|
||
<entry>
|
||
<para>
|
||
Kaynağı boşluklar ve yorumlardan arındırılmış olarak gösterir.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Bu seçenek <option>-r</option> seçeneği ile birlikte çalışmaz.
|
||
</para>
|
||
</note>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>-z</entry>
|
||
<entry>--zend-extension</entry>
|
||
<entry>
|
||
<para>
|
||
Zend eklentisini yükler. Eğer sadece dosya ismi verilirse, PHP bu
|
||
eklentiyi sisteminizde geçerli öntanımlı kütüphane yolundan
|
||
yüklemeye çalışır (Linux sistemlerde genellikle
|
||
<filename>/etc/ld.so.conf</filename> dosyasında belirtilir). Dosya
|
||
adı tam yol bilgisi ile aktarılırsa sistem kütüphanesi arama yolu
|
||
kullanılmaz. Bir dizin bilgisiyle göreceli bir dosya ismi kullanımı
|
||
PHP'ye sadece geçerli dizine göreceli eklentinin yüklenmesini söyler.
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry></entry>
|
||
<entry>--ini</entry>
|
||
<entry>
|
||
<para>
|
||
Yapılandırma dosya isimlerini ve taranan dizinleri gösterir.
|
||
<example>
|
||
<title>- <literal>--ini</literal> örneği</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php --ini
|
||
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
|
||
Loaded Configuration File: /usr/dev/php/5.2/lib/php.ini
|
||
Scan for additional .ini files in: (none)
|
||
Additional .ini files parsed: (none)
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>--rf</entry>
|
||
<entry>--rfunction</entry>
|
||
<entry>
|
||
<para>
|
||
Verilen işlev veya sınıf yöntemi hakkında bilgi gösterir (örneğin,
|
||
bağımsız değişken adlarını ve sayısını).
|
||
</para>
|
||
<para>
|
||
Bu seçenek sadece PHP <xref linkend="book.reflection" /> desteği ile
|
||
derlendiyse mevcuttur.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>- Temel <literal>--rf</literal> kullanımı</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php --rf var_dump
|
||
Function [ <internal> public function var_dump ] {
|
||
|
||
- Parameters [2] {
|
||
Parameter #0 [ <required> $var ]
|
||
Parameter #1 [ <optional> $... ]
|
||
}
|
||
}
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>--rc</entry>
|
||
<entry>--rclass</entry>
|
||
<entry>
|
||
<para>
|
||
Verilen sınıf hakkında bilgi gösterir (sabitler, özellikler ve
|
||
yöntemler listesi).
|
||
</para>
|
||
<para>
|
||
Bu seçenek sadece PHP <xref linkend="book.reflection" /> desteği ile
|
||
derlendiyse mevcuttur.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>- <literal>--rc</literal> örneği</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php --rc Directory
|
||
Class [ <internal:standard> class Directory ] {
|
||
|
||
- Constants [0] {
|
||
}
|
||
|
||
- Static properties [0] {
|
||
}
|
||
|
||
- Static methods [0] {
|
||
}
|
||
|
||
- Properties [0] {
|
||
}
|
||
|
||
- Methods [3] {
|
||
Method [ <internal> public method close ] {
|
||
}
|
||
|
||
Method [ <internal> public method rewind ] {
|
||
}
|
||
|
||
Method [ <internal> public method read ] {
|
||
}
|
||
}
|
||
}
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>--re</entry>
|
||
<entry>--rextension</entry>
|
||
<entry>
|
||
<para>
|
||
Verilen eklenti hakkında bilgi gösterir (&php.ini; seçenekleri,
|
||
tanımlı işlevler, sabitler ve sınıflar listesi).
|
||
</para>
|
||
<para>
|
||
Bu seçenek sadece PHP <xref linkend="book.reflection" /> desteği ile
|
||
derlendiyse mevcuttur.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>- <literal>--re</literal> örneği</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php --re json
|
||
Extension [ <persistent> extension #19 json version 1.2.1 ] {
|
||
|
||
- Functions {
|
||
Function [ <internal> function json_encode ] {
|
||
}
|
||
Function [ <internal> function json_decode ] {
|
||
}
|
||
}
|
||
}
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>--rz</entry>
|
||
<entry>--rzendextension</entry>
|
||
<entry>
|
||
<para>
|
||
Belirtilen Zend eklentisi için yapılandırma bilgisini gösterir (bu
|
||
bilgi <function>phpinfo</function> ile de elde edilebilir).
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>--ri</entry>
|
||
<entry>--rextinfo</entry>
|
||
<entry>
|
||
<para>
|
||
Verilen eklenti için yapılandırma bilgisini gösterir
|
||
(<function>phpinfo</function> ile aynı bilgiyi döndürür).
|
||
Çekirdek yapılandırma bilgisi "main" eklenti
|
||
adı kullanılarak bulunabilir.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>- <literal>--ri</literal> örneği</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php --ri date
|
||
|
||
date
|
||
|
||
date/time support => enabled
|
||
"Olson" Timezone Database Version => 2008.20
|
||
Timezone Database => internal
|
||
Default timezone => Europe/Helsinki
|
||
|
||
Directive => Local Value => Master Value
|
||
date.timezone => no value => no value
|
||
date.default_latitude => 31.7667 => 31.7667
|
||
date.default_longitude => 35.2333 => 35.2333
|
||
date.sunset_zenith => 90.583333 => 90.583333
|
||
date.sunrise_zenith => 90.583333 => 90.583333
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
<note>
|
||
<para>Uzun seçenekler (--no-chdir gibi) PHP 4.3.3'ten beri kullanılabilmektedir.</para>
|
||
</note>
|
||
</para>
|
||
<note>
|
||
<para>
|
||
<literal>-rBRFEH</literal>, <literal>--ini</literal> ve
|
||
<literal>--r[fcezi]</literal> seçenekleri sadece &cli;'de kullanılabilir.
|
||
</para>
|
||
</note>
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<!--Usage: {{{-->
|
||
<section xml:id="features.commandline.usage">
|
||
<title>PHP dosyalarının çalıştırılması</title>
|
||
<titleabbrev>Kullanım</titleabbrev>
|
||
|
||
<para>
|
||
&cli.sapi; çalıştırmak istediğiniz PHP
|
||
kodunu getirmek için üç farklı yola sahiptir:
|
||
<orderedlist>
|
||
<listitem>
|
||
<para>
|
||
PHP'ye belli bir dosyayı çalıştırmasını söyleyerek.
|
||
</para>
|
||
<informalexample>
|
||
<screen>
|
||
<![CDATA[
|
||
php ornek_betik.php
|
||
|
||
php -f ornek_betik.php
|
||
]]>
|
||
</screen>
|
||
</informalexample>
|
||
<para>
|
||
Her iki yolla da (<option>-f</option> seçeneğini olsun olmasın)
|
||
<filename>ornek_betik.php</filename> dosyası çalıştırılır. Çalıştırmak
|
||
için herhangi bir dosyayı seçebilirsiniz - PHP betikleriniz
|
||
<literal>.php</literal> uzantısı ile bitmek zorunda değildir,
|
||
istediğiniz herhangi bir isim ve uzantıya sahip olabilirler.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Doğrudan komut satırında işletmek üzere PHP kodunu aktararak.
|
||
</para>
|
||
<informalexample>
|
||
<screen>
|
||
<![CDATA[
|
||
php -r 'print_r(get_defined_constants());'
|
||
]]>
|
||
</screen>
|
||
</informalexample>
|
||
<para>
|
||
Kabuk değişken değişimi ve tırnak kullanımı için özel bir çaba
|
||
sarfetmek gerekir.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Örneği dikkatle okuyunuz, hiçbir başlangıç veya bitiş etiketi yok!
|
||
<option>-r</option> seçeneği bunlara ihtiyaç duymaz. Bunların
|
||
kullanımı çözümleme hatasına yol açar.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Çalıştırılacak PHP kodunu standart girdiden
|
||
(<constant>STDIN</constant>) yollamak suretiyle.
|
||
</para>
|
||
<para>
|
||
Bu, PHP kodunu dinamik olarak oluşturma ve bunu çalıştırma yeteneği
|
||
sağlar. Örneğin:
|
||
</para>
|
||
<informalexample>
|
||
<screen>
|
||
<![CDATA[
|
||
$ bir_uygulama | bir_suzgec | php | sort -u > nihai_sonuc.txt
|
||
]]>
|
||
</screen>
|
||
</informalexample>
|
||
</listitem>
|
||
</orderedlist>
|
||
Kodu çalıştırmak için bu üç yol birlikte kullanılamaz.
|
||
</para>
|
||
<para>
|
||
Her kabuk uygulamasındaki gibi, PHP çalıştırılabiliri bir takım
|
||
bağımsız değişkenler alabildiği gibi PHP betiğiniz de bağımsız değişkenler alabilir.
|
||
Betiğinize aktarabileceğiniz bağımsız değişken sayısı PHP tarafından
|
||
sınırlandırılmamıştır (kabukta aktarılabilecek karakter sayısı sınırlıdır;
|
||
genellikle bu sınıra ulaşmazsınız). Betiğinize aktarılan bağımsız değişkenler
|
||
<varname>$argv</varname> küresel dizisinde bulunur. Sıfır indisi her zaman
|
||
betik adını içerir. PHP kodu standart girdiden veya <option>-r</option>
|
||
komut satırı seçeneğiyle çalıştıysa betik adı <literal>"Standard input
|
||
code"</literal> olur; PHP 7.2.0 öncesinde <literal>-</literal> idi.
|
||
Eğer kod standart girdiden bir boru ile çalıştırılırsa bu yine geçerlidir.
|
||
</para>
|
||
<para>
|
||
İkinci kayıtlı küresel değişken <varname>$argc</varname>'dir ve
|
||
<varname>$argv</varname> dizisindeki eleman sayısını içerir (betiğe
|
||
aktarılan bağımsız değişken sayısını <emphasis role="strong">değil</emphasis>).
|
||
</para>
|
||
<para>
|
||
Betiğinize aktarmak istediğiniz bağımsız değişkenler <literal>-</literal>
|
||
karakteriyle başlamadığı sürece, özel bir şeye dikkat etmeniz gerekmez.
|
||
Betiğinize <literal>-</literal> ile başlayan bir bağımsız değişken aktarımı sorun
|
||
yaratır çünkü PHP yorumlayıcısı bunu kendisinin işlemesi gerektiğini
|
||
düşünecektir. Bunu önlemek için, bağımsız değişken listesi ayracı olan
|
||
<literal>--</literal> kullanın, bunu izleyen her bağımsız değişken ellenmeden
|
||
betiğinize aktarılır.
|
||
</para>
|
||
|
||
<informalexample>
|
||
<screen>
|
||
<![CDATA[
|
||
# Bu verilen kodu çalıştırmaz fakat PHP kullanımını gösterir
|
||
$ php -r 'var_dump($argv);' -h
|
||
Usage: php [options] [-f] <file> [args...]
|
||
[...]
|
||
|
||
# Bu '-h' bağımsız değişkenini betiğinize aktarır ve
|
||
# PHP'nin bağımsız değişkeni görmesini önler
|
||
$ php -r 'var_dump($argv);' -- -h
|
||
array(2) {
|
||
[0]=>
|
||
string(1) "-"
|
||
[1]=>
|
||
string(2) "-h"
|
||
}
|
||
]]>
|
||
</screen>
|
||
</informalexample>
|
||
|
||
<para>
|
||
Kabuk betikleri için PHP farklı bir yoldan kullanılabilir. İlk satırı
|
||
<literal>#!/usr/bin/php</literal> ile başlayan bir betik yazabilirsiniz.
|
||
Bunu takip eden satırlara başlangıç ve bitiş etiketlerine sahip normal PHP
|
||
kodunuzu yerleştirebilirsiniz. Dosyanın çalıştırma izinlerini
|
||
ayarladığınızda (örn. <command>chmod +x deneme</command>) betiğiniz normal
|
||
bir kabuk veya perl betiği gibi işletilir.
|
||
</para>
|
||
<example>
|
||
<title>- PHP betiğini kabuk betiği olarak çalıştırmak</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
#!/usr/bin/php
|
||
<?php
|
||
var_dump($argv);
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
<para>
|
||
Geçerli dizindeki bu dosyanın isminin <filename>deneme</filename>
|
||
olduğunu varsayarsak, aşağıdakini yapabiliriz:
|
||
</para>
|
||
<screen>
|
||
<![CDATA[
|
||
$ chmod +x deneme
|
||
$ ./deneme -h -- foo
|
||
array(4) {
|
||
[0]=>
|
||
string(6) "./deneme"
|
||
[1]=>
|
||
string(2) "-h"
|
||
[2]=>
|
||
string(2) "--"
|
||
[3]=>
|
||
string(3) "foo"
|
||
}
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
<para>
|
||
Gördüğünüz gibi, bu durumda betiğinize <literal>-</literal> ile başlayan
|
||
bağımsız değişken aktarırken hiçbir şeye dikkat etmeniz gerekmez.
|
||
</para>
|
||
|
||
<para>
|
||
PHP çalıştırılabiliri HTTP sunucusundan tamamen bağımsız olarak PHP
|
||
betikleri çalıştırmak için kullanılabilir. Eğer Unix sistemi
|
||
üzerindeyseniz, PHP betiğinizin başına özel bir <literal>#!</literal>
|
||
satırı eklemeli ve dosyanızı çalıştırılabilir yapmalısınız; böylece sistem
|
||
betiğinizi hangi programın çalıştıracağını bilir. Windows üzerinde
|
||
<literal>.php</literal> dosyalarına çift tıklama seçeneği ile
|
||
<filename>php.exe</filename>ilişkilendirebilir veya betiği PHP üzerinden
|
||
çalıştıracak bir yığın dosyası yapabilirsiniz. Unix'de çalışması için
|
||
betiğe eklenen ilk satır Windows'da sorun çıkarmaz, böylece platformdan
|
||
bağımsız programlar yazabilirsiniz. Örnek basit bir komut satırı PHP
|
||
programı aşağıdaki gibi olabilir.
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>- Komut satırından çalıştırılması planlanan betik (betik.php)
|
||
</title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
#!/usr/bin/php
|
||
<?php
|
||
|
||
if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
|
||
?>
|
||
Bu tek seçenekli bir komut satırı PHP betiğidir.
|
||
|
||
Kullanımı:
|
||
<?php echo $argv[0]; ?> <secenek>
|
||
|
||
<secenek> yazdırmak istediğiniz bir kelime olabilir.
|
||
--help, -help, -h,
|
||
veya -? seçenekleriyle, bu yardımı alabilirsiniz.
|
||
|
||
<?php
|
||
} else {
|
||
echo $argv[1];
|
||
}
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<para>
|
||
Yukarıdaki betikte, bu dosyanın PHP tarafından çalıştırılması gerektiğini
|
||
belirten özel bir ilk satır kullandık. Burada &cli; sürümü ile çalışıyoruz,
|
||
böylece HTTP başlık çıktıları olmayacak. PHP ile komut satırı uygulamaları
|
||
yazarken kullanabileceğiniz iki değişken vardır: <varname>$argc</varname>
|
||
ve <varname>$argv</varname>. Birincisi bağımsız değişken sayısından bir
|
||
fazlasıdır (çalışan betiğin adı). İkincisi bağımsız değişkenleri içeren bir
|
||
dizidir, sıfır numarayla başlar ve ilk elemanında betik adını içerir
|
||
(<varname>$argv[0]</varname>).
|
||
</para>
|
||
<para>
|
||
Yukarıdaki programda birden farklı sayıda bağımsız değişken olup olmadığı
|
||
kontrol ettik. Ayrıca eğer bağımsız değişken <option>--help</option>,
|
||
<option>-help</option>, <option>-h</option> veya <option>-?</option> ise
|
||
yardım iletisini yazdırdık ve <varname>$argv[0]</varname> ile betik adını
|
||
dinamik olarak yazdırdık. Bunlardan başka bağımsız değişkenler aldıysak bunlar
|
||
yerine onları yazdırdık.
|
||
</para>
|
||
<para>
|
||
Eğer yukarıdaki betiği Unix üzerinde çalıştırmak isterseniz betiği
|
||
çalıştırılabilir yapmalı ve <command>betik.php echothis</command> veya
|
||
<command>betik.php -h</command> ile çağırmalısınız. Windows'da bu iş için
|
||
bir yığın dosyası yapabilirsiniz:
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>- Bir komut satırı PHP betiği çalıştırmak için yığın dosyası
|
||
(betik.bat)</title>
|
||
<programlisting role="winbat">
|
||
<![CDATA[
|
||
@echo OFF
|
||
"C:\php\php.exe" script.php %*
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
|
||
<para>
|
||
Yukarıdaki programı <filename>betik.php</filename> olarak adlandırdığınız
|
||
ve <filename>C:\php\php.exe</filename> içinde &cli;'nin
|
||
<filename>php.exe</filename> olduğu varsayılarak bu yığın dosyası sizin
|
||
eklediğiniz seçeneklerle çalışacaktır: <command>betik.bat
|
||
echothis</command> veya <command>betik.bat -h</command>.
|
||
</para>
|
||
<para>
|
||
PHP'deki komut satırı uygulamalarını iyileştirmek için kullanabileceğiniz
|
||
işlevlerle ilgili bilgi için <link linkend="ref.readline"
|
||
>Readline</link> eklentisinin belgesine bakınız.
|
||
</para>
|
||
<para>
|
||
Windows üzerindeyseniz PHP,
|
||
<link linkend="install.windows.commandline">Microsoft Windows
|
||
üzerinde PHP Komut Satırı</link>
|
||
bölümünde açıklandığı gibi <literal>.php</literal> uzantısına veya
|
||
<filename>C:\php\php.exe</filename> çalıştırılabilirinin belirtilmesine
|
||
gerek kalmadan çalıştırılmak üzere yapılandırılabilir.
|
||
</para>
|
||
|
||
<note>
|
||
<para>
|
||
Windows'ta PHP'yi gerçek bir kullanıcı hesabı altında çalıştırmanız
|
||
önerilir. Aksi takdirde, bir ağ hizmeti altında çalışırken, "Hesap
|
||
adları ile güvenlik kimlikleri arasında hiçbir eşleştirme yapılmadığı"
|
||
için belirli işlemler başarısız olur.
|
||
</para>
|
||
</note>
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<!--I/O Streams: {{{-->
|
||
<section xml:id="features.commandline.io-streams">
|
||
<title>Giriş/Çıkış Akımları</title>
|
||
<titleabbrev>G/Ç Akımları</titleabbrev>
|
||
|
||
<para>
|
||
Kabuk ortamında G/Ç akımları ile kolay çalışmak için şu sabitler
|
||
tanımlanmıştır:
|
||
<table>
|
||
<title>&cli;'ye özel Sabitler</title>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Sabit</entry>
|
||
<entry>Açıklama</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><constant>STDIN</constant></entry>
|
||
<entry>
|
||
<para>
|
||
<literal>stdin</literal>'e açılmış bir akımdır. Aşağıdaki örnek
|
||
akımı açıp geleni kaydeder:
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
$stdin = fopen('php://stdin', 'r');
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
Eğer <literal>stdin</literal>'den tek satır okumak istenirse şu
|
||
kullanılabilir:
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
$line = trim(fgets(STDIN)); // STDIN'den bir satır okur
|
||
fscanf(STDIN, "%d\n", $number); // STDIN'den sayı okur
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</para></entry>
|
||
</row>
|
||
<row>
|
||
<entry><constant>STDOUT</constant></entry>
|
||
<entry><para>
|
||
<literal>stdout</literal>'a açılmış bir akımdır. Aşağıdaki örnek
|
||
akımı açıp gideni kaydeder:
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
$stdout = fopen('php://stdout', 'w');
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</para></entry>
|
||
</row>
|
||
<row>
|
||
<entry><constant>STDERR</constant></entry>
|
||
<entry>
|
||
<para>
|
||
<literal>stderr</literal>'e açılmış bir akımdır. Aşağıdaki örnek
|
||
akımı açıp çıktıyı kaydeder:
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
$stderr = fopen('php://stderr', 'w');
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</para>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
<para>
|
||
Yukarıda verilene göre, örneğin <literal>stderr</literal> için bir akım
|
||
açmanız gerekmez, ancak akım kaynağı yerine sabit kullanabilirsiniz:
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php -r 'fwrite(STDERR, "stderr\n");'
|
||
]]>
|
||
</programlisting>
|
||
Betik sonlandığında PHP otomatik olarak akımları kapattığı için
|
||
sizin ayrıca kapatmanız gerekmez.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Bu sabitler, PHP betiğinin <literal>stdin</literal>'den okunması
|
||
halinde mevcut değildir.
|
||
</para>
|
||
</note>
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<!--Interactive shell: {{{-->
|
||
<section xml:id="features.commandline.interactive">
|
||
<title>Etkileşimli kabuk</title>
|
||
|
||
<para>
|
||
PHP <option role="configure">--with-readline</option> seçeneği ile
|
||
derlenmişse, &cli.sapi; <option>-a</option> seçeneği kullanıldığında
|
||
etkileşimli bir kabuk açar. PHP 7.1.0'dan itibaren etkileşimli kabuk,
|
||
<link linkend="book.readline">readline eklentisi</link> etkinse, Windows
|
||
altında da kullanılabilmektedir.
|
||
</para>
|
||
|
||
<para>
|
||
Etkileşimli kabuğu kullanarak PHP kodu yazabilir ve bunları doğrudan
|
||
çalıştırabilirsiniz.
|
||
</para>
|
||
|
||
<example>
|
||
<title>- Etkileşimli kabuk kullanarak kod çalıştırmak</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php -a
|
||
Interactive shell
|
||
|
||
php > echo 5+8;
|
||
13
|
||
php > function ikiEkle($n)
|
||
php > {
|
||
php { return $n + 2;
|
||
php { }
|
||
php > var_dump(ikiEkle(2));
|
||
int(4)
|
||
php >
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
|
||
<para>
|
||
Etkileşimli kabuk ayrıca, işlevler, sabitler, sınıf isimleri, değişkenler
|
||
statik yöntem çağrıları ve sınıf sabitleri için sekme ile kod tamalama
|
||
özelliklerine sahiptir.
|
||
</para>
|
||
|
||
<example>
|
||
<title>- Kod tamamlama</title>
|
||
<simpara>
|
||
Sekme tuşuna iki kere basarak yazdığınız harflerle başlayan anahtar
|
||
sözcükleri listeleyebilirsiniz:
|
||
</simpara>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php > strp[TAB][TAB]
|
||
strpbrk strpos strptime
|
||
php > strp
|
||
]]>
|
||
</programlisting>
|
||
<simpara>
|
||
Olası tek seçenek olduğunda sekme tuşuna ilk basışınızda sözcük aynı
|
||
satırda tamamlanır:
|
||
</simpara>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php > strpt[TAB]ime(
|
||
]]>
|
||
</programlisting>
|
||
<simpara>
|
||
Tamamlama, bulunduğunuz etkileşimli kabuk ortamında tanımlanmış isimler için de çalışacaktır::
|
||
</simpara>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php > $fooThisIsAReallyLongVariableName = 42;
|
||
php > $foo[TAB]ThisIsAReallyLongVariableName
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
|
||
<para>
|
||
Etkileşimli kabukta yukarı ve aşağı ok tuşlerını kullanarak geçmiş
|
||
üzerinde dolaşabilirsiniz. Geçmiş <filename>~/.php_history</filename>
|
||
dosyasına kaydedilir.
|
||
</para>
|
||
|
||
<para>
|
||
<parameter>cli.pager</parameter> ve
|
||
<parameter>cli.prompt</parameter> &php.ini; değişkenleri devreye
|
||
girmiştir. <parameter>cli.pager</parameter> ile çıktıyı ekranda göstermek
|
||
yerine çıktıyı sayfalayacak bir programda (<filename>less</filename> gibi)
|
||
göstermek mümkündür. <parameter>cli.prompt</parameter> ile <literal>php
|
||
></literal> çıktısını değiştirebilirsiniz.
|
||
</para>
|
||
|
||
<para>
|
||
&php.ini; ayarlarını etkileşimli kabukta bir
|
||
kısayol ile değiştirmek de mümkündür.
|
||
</para>
|
||
|
||
<example>
|
||
<title>- Etkileşimli kabukta &php.ini; ayarlarını değiştirmek</title>
|
||
<simpara>
|
||
<parameter>cli.prompt</parameter> ile:
|
||
</simpara>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php > #cli.prompt=hello world :>
|
||
hello world :>
|
||
]]>
|
||
</programlisting>
|
||
<simpara>
|
||
Ters tırnakları kullanarak komut isteminde kod çalıştırabilirsiniz:
|
||
</simpara>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php > #cli.prompt=`echo date('H:i:s');` php >
|
||
15:49:35 php > echo 'hi';
|
||
hi
|
||
15:49:43 php > sleep(2);
|
||
15:49:45 php >
|
||
]]>
|
||
</programlisting>
|
||
<simpara>
|
||
Sayfalayıcı olarak <filename>less</filename> belirtmek:
|
||
</simpara>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
php > #cli.pager=less
|
||
php > phpinfo();
|
||
(çıktı less içinde gösterilir)
|
||
php >
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
|
||
<para>
|
||
<parameter>cli.prompt</parameter> içinde bir kaç öncelem belirtilebilir:
|
||
<table>
|
||
<title>- <parameter>cli.prompt</parameter> öcelemleri</title>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>Öncelem</entry>
|
||
<entry>Açıklama</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry><literal>\e</literal></entry>
|
||
<entry>
|
||
Komut istemine renk eklemek için kullanılır. Örnek:
|
||
<literal>\e[032m\v \e[031m\b \e[34m\> \e[0m</literal>
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><literal>\v</literal></entry>
|
||
<entry>PHP sürümü.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><literal>\b</literal></entry>
|
||
<entry>
|
||
Neyin içindekinin engelleneceğini belirtir. Örneğin, çok satırlı bir açıklama içinde olmayı belirtmek için: <literal>/*</literal> Dış kapsam <literal>php</literal> tarafından belirtilir.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry><literal>\></literal></entry>
|
||
<entry>
|
||
Komut istemi karakterini belirtir. By default this is
|
||
<literal>></literal> öntanımlı olsa da kabuk sonlandırılmamış bir
|
||
dizge veya blok içindeyse bu değişir. Olası karakterler: <literal>' "
|
||
{ ( ></literal>
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
<note>
|
||
<para>
|
||
<link linkend="ini.auto-prepend-file">auto_prepend_file</link> ve <link
|
||
linkend="ini.auto-append-file">auto_append_file</link> ile
|
||
içselleştirilen dosyalar bu kipte bazı sınırlamalarla çözümlenebilir;
|
||
örneğin çağrılmadan önce işlevler bu dosyalarda tanımlanabilir.
|
||
</para>
|
||
</note>
|
||
|
||
<section xml:id="features.commandline.interactive.mode">
|
||
<title>Etkileşimli kip</title>
|
||
<para>
|
||
Readline eklentisi kullanılabiliyorsa PHP 8.1.0 öncesinde,
|
||
<option>-a</option> seçeneği kullanılarak yapılan bir &cli.sapi; çağrısı
|
||
etkileşimli kipe girilmesini sağlardı. Bu kipte, eksiksiz bir PHP
|
||
betiğinin standart girdiden verilmesi gerekir. POSIX'te
|
||
<literal>CRTL+d</literal> veya Windows'ta <literal>CTRL+z</literal> ve
|
||
ardından <literal>ENTER</literal> tuşlanmasıyla bu betik çalıştırılır.
|
||
Bu temelde <option>-a</option> seçeneği kullanmaksızın yapılan bir
|
||
&cli.sapi; çağrısına eşdeğerdir.
|
||
</para>
|
||
<para>
|
||
PHP 8.1.0 itibariyle, <option>-a</option> seçeneği kullanılarak yapılan
|
||
bir &cli.sapi; çağrısı, readline eklentisi kullanılabilir değilse
|
||
başarısız olur.
|
||
</para>
|
||
</section>
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<!--Built-in CLI Web Server: {{{-->
|
||
<section xml:id="features.commandline.webserver">
|
||
<title>Yerleşik HTTP sunucusu</title>
|
||
|
||
<warning>
|
||
<para>
|
||
Bu HTTP sunucusu uygulama geliştirmeye yardımcı olmak üzere tasarlanmıştır.
|
||
Ayrıca, denetimli bir ortam olarak uygulamaların denenmesi amacıyla da
|
||
kullanılabilir. Herşeyiyle eksiksiz bir HTTP sunucusu olarak
|
||
tasarlanmamıştır. Halka açık ağlarda kullanılmamalıdır.
|
||
</para>
|
||
</warning>
|
||
|
||
<para>
|
||
&cli.sapi; yerleşik bir HTTP sunucusu içerir.
|
||
</para>
|
||
|
||
<para>
|
||
Bu HTTP sunucusu tek evreli bir süreç çalıştırır. Dolayısıyla, PHP
|
||
uygulamaları istek engellendiği zaman yavaşlayıp duracaktır.
|
||
</para>
|
||
|
||
<para>
|
||
İstenen adres PHP'nin başlatıldığı çalışma dizinine göre sunulur. Bu kök
|
||
dizin PHP çalıştırılırken -t seçeneği kullanılarak değiştirlebilir. İstek
|
||
bir dosya belirtmiyorsa belirtilen dizindeki index.php veya index.html
|
||
dosyası sunulur. Bu iki dosya da mevcut değilse index.php veya index.html araması üst dizinde devam eder ve bu belge kök dizinine ulaşılıncaya dek devam eder. Bulunduğu takdirde, döndürülür ve URI'nin devamına $_SERVER['PATH_INFO'] atanır. Aksi takdirde 404 yanıt kodu döndürülür.
|
||
</para>
|
||
|
||
<para>
|
||
İstenen adres bir dosya belirtmezse, belirtilen dizindeki index.php
|
||
veya index.html gösterilir. Bu dosyalar da mevcut değilse, bir 404 yanıtı
|
||
döndürülür.
|
||
</para>
|
||
|
||
<para>
|
||
Aşağıdaki uzantılara sahip dosyalar için standart MIME türleri döndürülür:
|
||
<simplelist type="inline">
|
||
<member><literal>.3gp</literal></member>
|
||
<member><literal>.apk</literal></member>
|
||
<member><literal>.avi</literal></member>
|
||
<member><literal>.bmp</literal></member>
|
||
<member><literal>.css</literal></member>
|
||
<member><literal>.csv</literal></member>
|
||
<member><literal>.doc</literal></member>
|
||
<member><literal>.docx</literal></member>
|
||
<member><literal>.flac</literal></member>
|
||
<member><literal>.gif</literal></member>
|
||
<member><literal>.gz</literal></member>
|
||
<member><literal>.gzip</literal></member>
|
||
<member><literal>.htm</literal></member>
|
||
<member><literal>.html</literal></member>
|
||
<member><literal>.ics</literal></member>
|
||
<member><literal>.jpe</literal></member>
|
||
<member><literal>.jpeg</literal></member>
|
||
<member><literal>.jpg</literal></member>
|
||
<member><literal>.js</literal></member>
|
||
<member><literal>.kml</literal></member>
|
||
<member><literal>.kmz</literal></member>
|
||
<member><literal>.m4a</literal></member>
|
||
<member><literal>.mov</literal></member>
|
||
<member><literal>.mp3</literal></member>
|
||
<member><literal>.mp4</literal></member>
|
||
<member><literal>.mpeg</literal></member>
|
||
<member><literal>.mpg</literal></member>
|
||
<member><literal>.odp</literal></member>
|
||
<member><literal>.ods</literal></member>
|
||
<member><literal>.odt</literal></member>
|
||
<member><literal>.oga</literal></member>
|
||
<member><literal>.ogg</literal></member>
|
||
<member><literal>.ogv</literal></member>
|
||
<member><literal>.pdf</literal></member>
|
||
<member><literal>.png</literal></member>
|
||
<member><literal>.pps</literal></member>
|
||
<member><literal>.pptx</literal></member>
|
||
<member><literal>.qt</literal></member>
|
||
<member><literal>.svg</literal></member>
|
||
<member><literal>.swf</literal></member>
|
||
<member><literal>.tar</literal></member>
|
||
<member><literal>.text</literal></member>
|
||
<member><literal>.tif</literal></member>
|
||
<member><literal>.txt</literal></member>
|
||
<member><literal>.wav</literal></member>
|
||
<member><literal>.webm</literal></member>
|
||
<member><literal>.wmv</literal></member>
|
||
<member><literal>.xls</literal></member>
|
||
<member><literal>.xlsx</literal></member>
|
||
<member><literal>.xml</literal></member>
|
||
<member><literal>.xsl</literal></member>
|
||
<member><literal>.xsd</literal></member>
|
||
<member><literal>.zip</literal></member>
|
||
</simplelist>
|
||
</para>
|
||
<simpara>
|
||
PHP 7.4.0'dan itibaren, yerleşik HTTP sunucusu, birden fazla eşzamanlı
|
||
istek gerektiren kodu sınamak için birden fazla süreci çatallamak üzere
|
||
yapılandırılabilir. Sunucu başlatılmadan önce
|
||
<envar>PHP_CLI_SERVER_WORKERS</envar> ortam değişkeni istenen süreç
|
||
sayısına ayarlanmalıdır.
|
||
</simpara>
|
||
<note>
|
||
<simpara>Bu özellik Windows'ta desteklenmez.</simpara>
|
||
</note>
|
||
<warning>
|
||
<para>
|
||
Bu <emphasis>deneysel</emphasis> özellik üretim ortamında kullanmak için <emphasis>tasarlanmamıştır</emphasis>. Genelde yerleşik HTTP sunucuları üretim ortamında kullanmak için <emphasis>tasarlanmaz</emphasis>.
|
||
</para>
|
||
</warning>
|
||
|
||
<example>
|
||
<title>- HTTP sunucusunun başlatılması</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ cd ~/public_html
|
||
$ php -S localhost:8000
|
||
]]>
|
||
</programlisting>
|
||
<para>
|
||
Uçbirim çıktısı:
|
||
</para>
|
||
<screen>
|
||
<![CDATA[
|
||
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
|
||
Listening on localhost:8000
|
||
Document root is /home/me/public_html
|
||
Press Ctrl-C to quit
|
||
]]>
|
||
</screen>
|
||
<para>
|
||
http://localhost:8000/ ve
|
||
http://localhost:8000/myscript.html isteklerinden sonra uçbirim çıktısı
|
||
şuna benzer:
|
||
</para>
|
||
<screen>
|
||
<![CDATA[
|
||
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
|
||
Listening on localhost:8000
|
||
Document root is /home/me/public_html
|
||
Press Ctrl-C to quit.
|
||
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
|
||
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
|
||
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
|
||
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
|
||
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
<para>
|
||
PHP 7.4.0'dan önce, sembolik bağlantılı statik kaynaklara, yönlendirici
|
||
betiği bunları işlemediği sürece Windows'ta erişilemezdi.
|
||
</para>
|
||
<example>
|
||
<title>- Belge kök dizini belirterek başlatma</title>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ cd ~/public_html
|
||
$ php -S localhost:8000 -t foo/
|
||
]]>
|
||
</programlisting>
|
||
<para>
|
||
Uçbirim çıktısı:
|
||
</para>
|
||
<screen>
|
||
<![CDATA[
|
||
PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
|
||
Listening on localhost:8000
|
||
Document root is /home/me/public_html/foo
|
||
Press Ctrl-C to quit
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
|
||
<example>
|
||
<title>- Yönlendirici betik belirtmek</title>
|
||
<para>
|
||
Görüntü isteklerinde görüntüler gösterildiği halde bir HTML dosyası
|
||
istendiğinde "Welcome to PHP" göstermek:
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// router.php
|
||
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
|
||
return false; // kaynak olduğu gibi gösterilir.
|
||
} else {
|
||
echo "<p>Welcome to PHP</p>";
|
||
}
|
||
?>]]>
|
||
</programlisting>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php -S localhost:8000 router.php
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
|
||
<example>
|
||
<title>- CLI Sunucusunda kullanmadan önce betiği sınamak</title>
|
||
<para>
|
||
Bir yönlendirici betiği geliştirici CLI sunucusunda kullandıktan sonra asıl
|
||
HTTP sunucusunda yeniden kullanmak:
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// router.php
|
||
if (php_sapi_name() == 'cli-server') {
|
||
/* statik varlıkları yönlendir ve false ile dön */
|
||
}
|
||
/* normal index.php işlemleri ile devam et */
|
||
?>]]>
|
||
</programlisting>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php -S localhost:8000 router.php
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
|
||
<example>
|
||
<title>- Desteklenmeyen Dosya Türlerinin İşlenmesi</title>
|
||
<para>
|
||
MIME türleri CLI sunucusu tarafından işlenmeyen statik kaynakları
|
||
sunmanız gerekirse:
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// router.php
|
||
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
|
||
if ($path["extension"] == "el") {
|
||
header("Content-Type: text/x-script.elisp");
|
||
readfile($_SERVER["SCRIPT_FILENAME"]);
|
||
}
|
||
else {
|
||
return FALSE;
|
||
}
|
||
?>]]>
|
||
</programlisting>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php -S localhost:8000 router.php
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
|
||
<example>
|
||
<title>- CLI sunucusuna uzak makinelerden erişim</title>
|
||
<para>
|
||
HTTP sunucusuna port 8000'den şöyle erişebilirsiniz:
|
||
</para>
|
||
<programlisting role="shell">
|
||
<![CDATA[
|
||
$ php -S 0.0.0.0:8000
|
||
]]>
|
||
</programlisting>
|
||
<warning>
|
||
<para>
|
||
Yerleşik HTTP sunucusu internette kullanılmamalıdır.
|
||
</para>
|
||
</warning>
|
||
</example>
|
||
|
||
</section>
|
||
<!--}}}-->
|
||
|
||
<section xml:id="features.commandline.ini">
|
||
<title>INI Ayarları</title>
|
||
<para>
|
||
<table>
|
||
<title>CLI SAPI &ConfigureOptions;</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody xml:id="features.commandline.ini.list">
|
||
<row>
|
||
<entry><link linkend="ini.cli-server.color">
|
||
cli_server.color</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.cli-server.color">
|
||
<term>
|
||
<parameter>cli_server.color</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Geliştirici HTTP sunucusunun uçbirim çıktısında ANSI renk kodlaması
|
||
kullanımını etkinleştirir.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
|
||
</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:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=marker fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|