PHP: Нұсқалар арасындағы айырмашылық

Content deleted Content added
Өңдеу түйіні жоқ
Өңдеу түйіні жоқ
218-жол:
;<tt>$_SESSION</tt> (уст. <tt>$HTTP_SESSION_VARS</tt>)
: Осы сессияларда болады.
 
 
 
 
=== Объективтi-хабар программалау===
Line 280 ⟶ 277:
?>
</source>
 
== Интерпретатордың ерекшелiктерi ==
 
PHP - скрипттер реттерде әдетте [[интерпретатор]]лардын қаралудан өтедi<ref name="php_comp_int"/>, қамтамасыз ететiн [[кроссплатформенность]] игерiлген қосымшалары:
# [[лексикалық талдау]] [[бастапқы кодтың | Бастапқы коды]] және [[лексемалардың (информатика ) | лексемасы]] генерация,
# алған лексемалар [[синтаксистiк талдау]],
# [[байт]]ы генерация,
# байт орындау - ([[атқарылатын файлдың | атқарылатын файлы]] жасаусыз) интерпретаторды код.
 
Қосымшалардың жылдамдығының үлкеюлерi үшiн [[программалық қамтамасыз етудi программалық| қамтамасыз ету]] қолдану арнайы болуы мүмкiн, [[үдеткiштердi PHPның | үдеткiшi]] деп аталатын. Олардың жұмысының қағидасы бiр күнi шығарылған байтта болады - [[дисктiң қатты | диск]] и/илиға коды, сайып келгенде, қосымшаның жұмысының процессiнен кезеңдер жағдайда жұмыстың түбегейлi үдеуiне бағытталатын 1—3 шығарылады.
 
Маңызды ерекшелiк болып табылады онда өңдеушiге не ЄдЄуға қажетi жоқты және Жад [[босаудың қоқыс | жинастыру]]. PHP ядро жадты автоматты басқару үшiн құралды жүзеге асырады; барлық ерекшеленген жад жүйеге скрипттi жұмыс аяғынан кейiн қайтарылады.<ref>{{cite web|url=http://ua.php.net/manual/en/internals2.memory.management.php|title=PHP: Basic memory management — Manual|date=13 ноября 2009|lang=ru|accessdate=2009-11-17|archiveurl=http://www.webcitation.org/616Xk37JK|archivedate=2011-08-21}}</ref>
 
=== Кеңейтулер ===
 
Интерпретатор [[ядроның | Zend Engineсi]] тұрады қосылатын [[модулдардың (программалау ) | модулы]] өзiменмен [[кiтапхананың (программалау ) | кiтапханасы]] динамикалық ұсынатын "кеңейтулерден" тұрады. Кеңейтулер тiлдiң негiздi мүмкiндiктерiн [[деректер қоры | деректер қоры басқару жүйесi]] жұмыс үшiн мүмкiндiк бере толықтыруға мүмкiндiк бередi, [[сокеттермен (программалық интерфейс) | сокет]], [[графикамен компьютер | графикасы]] динамикалық, [[PDF]] қалыптың кiтапханалармен, құжаттарымен [[криптография | крифтографиялық]] соған ұқсас. Кез келген құлықтысы кеңейтудi өз меншiктi жасауға және ол қоса алады. Жасалған бөтен серiктестiктер және энтузиасттармен, дегенмен үйреншiктi жабдықтауына тек қана өз жақсы кепiлдеме берген бiрнеше он шақтылары кiредi де, үйреншiктi де кеңейтулердi көптiк бар болады. Кеңейтулердi жиын [[PECL]] репозиторииға түсiнiктi.
 
=== Күйге келтiрудiң параметрлерi ===
 
PHP интерпретатор [[кескiндi файл]] арнайы алады — <tt>php.ini</tt>, өзгерiсi интерпретатордың мiнез-құлығына ықпал ететiн күйге келтiрулердi болатын жиын.<ref>{{cite web|url=http://ua.php.net/manual/en/ini.php|title=PHP: php.ini directives — Manual|date=6 ноября 2009|lang=en|accessdate=2009-11-13|archiveurl=http://www.webcitation.org/616Xkcrhr|archivedate=2011-08-21}}</ref> Функциялардың қолдану қатарлары бөлiп тастау мүмкiндiгi, жүктелетiн файлдардың скрипт қолданылатын жедел жадты, орындау уақыты, көлемiне шектеуiн өзгертiп, қателердiң журналированиесi, сессиялары бар жұмысты және пошталық сервистермен күйге келтiрiп, қосымша кеңейтулер қосуға болады, сонымен бiрге көп басқа. Бұл параметрлер скрипттiң орындаулары уақытында командамен өзгертiле алады<tt>ini_set</tt>.<ref>{{cite web|url=http://ua.php.net/manual/en/ini.list.php|title=PHP: List of php.ini directives — Manual|date=6 ноября 2009|lang=en|accessdate=2009-11-13|archiveurl=http://www.webcitation.org/616XlBAvP|archivedate=2011-08-21}}</ref>
 
=== Интерпретатордың тәртiптерi ===
 
PHPның интерпретаторының бiрнеше қолдану әдiстерi бар болады:
# Модул ретiнде [[веб-сервер]] арқылыларда [[ISAPI]] немесе [[SAPI]]<ref>[http://www.php.net/manual/en/security.apache.php PHP: Installed as an Apache module — Manual]</ref> (мысалы, модул [[Apache]] үшiн<tt>mod_php</tt>). Сервер веб-нi толтырылған модулмен iске қосылады және phpларға қарап сөйлеуде - ол скриптке сервердiң веб-сi [[процесстiң (информатика ) | процессi]] [[ортаның | Операциялық орта]] орындалады. Арқасында келесi себептердiң PHPның қолдануының әдiсi бұл кең таралғандар:
#* ол [[талқылауды программаны | дұрыстау]] үшiн өте ыңғайлы, PHPның қатесi өйткенi (осы тәртiп егер күйге келтiрулердегi қосылған) пердеде iске аспай қалады, қате [[CGI]] тәртiпте сонда генерацияға алып келедi [[HTTP#500 күйiнiң кодтарының тiзiмiия |HTTP-коды 500]] және қосымша мәлiметтi сервердiң веб-сiне iздеуге керек;
#*PHPның кейбiр күйге келтiрулерi өзгерту мүмкiндiгi кiдiрiссiз файл арқылы болады [[.htaccess]], веб-сервердiң қайта тиеулерсiз;
#* тәртiпте HTTP пайдалану мүмкiндiгi CGI жоқ - аутентификациямен.<ref>[http://dev.1c-bitrix.ru/community/blogs/howto/568.php 1С-Битрикс — mod_php vs CGI vs FastCGI]</ref><ref>{{cite web|url=http://docs.php.net/manual/ru/features.http-auth.php|title=PHP: HTTP-Аутентификация в PHP — Manual|date=21 июня 2009|accessdate=2009-11-13|archiveurl=http://www.webcitation.org/616XlmYiV|archivedate=2011-08-21}}</ref>
#* жұмыстың биiгiрек жылдамдығымен ие болады.
# [[CGI]] ретiнде. Осы жағдайда, веб-сервер скрипттi шақыруда шақырады<tt>/usr/bin/php-cgi /path/to/script.php</tt>. Сонымен бiрге жаңа процесс және скрипт жасалады ортада орындалады<tt>php-cgi</tt>, қай, күйге келтiрулерге байланысты, сервердiң веб-сiнiң процесстiң ортасынан күштi айырмашылығы бола алады. Қазiргi варианттан астам [[FastCGI]] болып табылады. PHP препроцессор қарамастан бәрiбiр әрбiр сұрау салуда қайта жiбередi<ref>[http://www.fastcgi.com/drupal/node/5?q=node/10 PHP | FastCGI]</ref><ref>[http://dklab.ru/chicken/nablas/49.html PHPның жүктеуiн оптимизациялаймыз - код 22 есе, немесе FastCGI PHPны жылдамдатпайтын]</ref>, осы вариантты артықшылық қауiпсiздiктiң биiгiрек дәрежесi алдыңғының алдында болып табылады, сондықтан PHPның қалайы өз құқықтары бар жеке қосымша сияқты жұмыс iстейдi.
# [[командалық жолдың | командалық жолының интерфейсi]] қолданушымен шақырылатын [[командалық жолдың скриптiн | командалық жолдың интерфейсi]] ретiнде [[атқарылатын файлмен | атқарылатын файл]] болатын; скрипт шақырған қолданушының ортасында орындалады. Осы жағдайда жасаулар үшiн қолдану PHPлар [[GUI]] клиент болуы мүмкiн - қосымшалар<ref>{{cite web|url=http://docs.php.net/manual/ru/features.commandline.php|title=PHP: Командалық жолдағы қолдануы PHPлары — Manual|date=21 июня 2009|lang=ru|accessdate=2009-11-13|archiveurl=http://www.webcitation.org/616XmPeqJ|archivedate=2011-08-21}}</ref> және [[басқару жүйелерi | басқару жүйесi]] әкiмшiлiк есептердiң шешiмдерi [[UNIX]], [[Linux]], [[Microsoft Windows]], [[Mac OS X]] и [[AmigaOS]]. Ол такомалардың сапасында алайда, таратуды бiрiншiлiктiң пальмасын бере алмады [[Perl]], [[Python]] и [[Visual Basic Scripting Edition|VBScript]]
 
=== Пасхалық жұмыртқалар ===
 
PHP [[пасхалық жұмыртқалардың (виртуалды ) | пасхалық жұмыртқасы]] (әзiлдер ) бiрнеше алады. Арнайы GETтардың берiлуi - кез келген phpлерге параметрлерi - скриптке әр түрлi суреттердiң қорытындысына алып келедi.
 
Мысалы:
 
кез келген_сценари.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
 
браузердiң адрестi жолына бұл мән интерпретатордың болжамына байланысты әр түрлi суреттер көруге боладуға енгiзе:
# фотосурет ''Thies Arntzen'' (болжамдар 4.1.2, 4.2.2)
# фотосурет [[Такса|таксы]] (билеушісі ''Stig Bakken'') (болжамдар 4.3.2, 4.3.3, 4.3.8 — 4.3.10)
# фотосурет қара [[терьер]] (билеушісі ''Zeev Suraski'') (болжамдар 4.3.11, 4.4.0 — 4.4.4, 5.1.0, 5.1.2)
# фотосурет [[үй қояны]] (болжамдар 4.3.1, 5.0.0, 5.0.3)
#PHP бұрмалалған логотип (болжамдар 5.1.3 — 5.2.13)<ref name="0php_eeggs">{{cite web|url=http://www.0php.com/php_easter_egg.php|title=PHP Easter Egg|lang=en|accessdate=2009-11-16|archiveurl=http://www.webcitation.org/616b44t2j|archivedate=2011-08-21}}</ref>
# PHPның жазуы бар ойыншық көк пiлдiң фотосуретi (бастау болжамдар 5.3.0)<ref name="0php_eeggs"/>
Келесi екi мәндер PHP және ZENDтiң үйреншiктi логотиптарын көруге мүмкiндiк бередi, сәйкесiнше:<ref name="0php_eeggs"/>
 
кез келген_сценари.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
кез келген_сценари.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
 
Бұл мәндер PHPға тiкелей - скрипт функциялар арқылы да алуға болады<tt>php_logo_guid</tt> и <tt>zend_logo_guid</tt> Zendтың логотибы үшiн.
 
Сонымен бiрге PHP (4,5) барлық авторларын тiзiмнiң бейнесi үшiн арнайы мәнде болады:<ref name="0php_eeggs"/>
 
кез келген_сценари.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
 
=== Талғаулы iске асырулар ===
PHPның тiлi және ниеттерi мәлiмдiлiкке байланысты негiзделген [[қосымшалардың веб-сi | қосымша веб-]] оның жылдамдығын үлкейтсiн, тiлге [[компилятор]]лар бiрнеше талғаулы , жақын PHPларына жасалған. Серiктестiк [[2010 жыл]] ақпанда осылай [[Facebook]] ашты<ref>[http://developers.facebook.com/news.php?blog=1&story=358 HipHop for PHP: Move Fast]</ref><ref>[http://www.opennet.ru/opennews/art.shtml?num=25268 Facebook серiктестiк транслятордың жоғары өнiмдi PHPлерiн кодты ашты]</ref> PHP өз компиляторы— [[HipHop (информатика)|HipHop]] (HPHP, Hyper-PHP) [[C++]] жинайтын код, [[gcc]] көмегiмен машина кодына келесi компиляциямен.
 
Кестесiнде талғаулы iске асырулардың қазiргi бүгiнгi моменттерiне тiзiмi елестеткен.
 
{| class="standard"
|+
! |Атауы
! |Лицензия
! |Компиляцияны нәтиже
|-
| [[HipHop (информатика)|HipHop]]
| [[PHP License]]
| [[C++]], [[машина коды]]
|-
| [[Roadsend PHP]]
| [[GPL]]/[[LGPL]]
| [[Си (программалау тiлi)|C]], [[машина коды]]
|-
| [[Phalanger]]
| Ms SS-PL<ref>[http://www.codeplex.com/license?ProjectName=Phalanger лицензии тексты ]{{ref-en}}</ref> ([[Shared source]])
| [[MSIL|Microsoft IL]]
|-
| [http://www.caucho.com/ Quercus] ([[веб-сервер]] құрамда Resin)
| [[GPL]] немесе коммерциялығы <!-- ref>PHP OpenSourceларға болжамдарды түсiндiрiп бередi. Компиляция тек қана коммерциялық professionдерге қосылған - болжамды</ref тексерiлмеген-->
| [[JVM]]
|-
| [http://www.phpcompiler.org/ PHC]
| [[BSDL]]
| [[Си (программалау тiлi)|C]], [[машина коды]]
|-
| [http://pipp.org/ Pipp]<ref>Жоба эксперименталдi кезеңде болады</ref>
| [[Artistic License]] и [[GNU GPL]]
| [[Parrot]]
|}
 
Кейбiр компиляторлардың салыстырмалы талдауы қол жететiн сайтта [[:en:PHPClasses repository|phpclasses.org]]: [http://www.phpclasses.org/blog/post/117-PHP-compiler-performance.html PHP compiler performance].
<!--- === Phalanger===
{{main|Phalanger}}
 
[[Phalanger]] — PHP/CLIнiң кодқа код PHP [[MSIL|Microsoft IL]] құрастыруға мүмкiндiк беретiн компилятор және кеңейтулерi. Консолды өндеуге болуы мүмкiн, [[WinForms]], қосымша [[Silverlight]]. -->
 
 
«https://kk.wikipedia.org/wiki/PHP» бетінен алынған