PHP: Разлика между версии
→Предимства на езика: Неенциклопедично съдържание |
м Робот Добавяне: ckb |
||
Ред 151: | Ред 151: | ||
[[ca:PHP]] |
[[ca:PHP]] |
||
[[ceb:PHP]] |
[[ceb:PHP]] |
||
[[ckb:پی ئچ پی]] |
|||
[[cs:PHP]] |
[[cs:PHP]] |
||
[[cy:PHP]] |
[[cy:PHP]] |
Версия от 04:06, 17 август 2009
Тази статия се нуждае от подобрение. Необходимо е: привеждане в по-енциклопедичен вид. Ако желаете да помогнете на Уикипедия, използвайте опцията редактиране в горното меню над статията, за да нанесете нужните корекции. |
Шаблон:Информация за програмен език
PHP е език за програмиране, широко използван главно за сървърни приложения и разработване на динамично уеб-съдържание. Пример за PHP приложение е МедияУики - софтуерът, използван от Уикипедия. Автор на езика е датчанинът с канадски произход Размус Лердорф. PHP е рекурсивно съкращение от PHP: Hypertext Preprocessor (като в самото начало за обозначение създателите използвали Personal Home Page).
Преглед
PHP е скриптов език (изискващ компилиране) със синтаксис базиран на C и отчасти Perl. Използва се предимно в Web-среда за създаване на широк кръг от услуги. Той е един от най-популярните езици за програмиране в Интернет и популярността му расте непрекъснато.
PHP се разпространява под отворен лиценз (PHP License), който по своята същност е BSD лиценза и който позволява безплатно разпространяване на програмния код на интерпретатора на езика, както и създаването на деривати под други лицензи с уговорката, че тези деривати не могат да включват PHP в името си. Фактът, че PHP се разпространява безплатно, го прави удачен избор за изграждане на Web-сървър базиран изцяло на безплатни продукти - GNU/Linux, Apache, MySQL/PostgreSQL и др.
Самият език е преносим на много изчислителни архитектури и операционни системи като Windows, GNU/Linux, UNIX, Mac OS X.
Съществуват множество модули (разширения) за PHP, които добавят различни функционалности и позволяват много по-бързо и ефективно разработване. Такива допълнителни функционалности към езика са:
- функции за обработка (създаване, редактиране ...) на изображения
- функции за работа с низове и регулярни изрази
- функции за работа с XML съдържание
- функции за работа със сокети (гнезда)
- функции за дата и час
- математически функции
- функции за компресия и шифриране/дешифриране
- функции за COM и .NET за (Windows)
- функции за SOAP
- функции за работа с различни СУБД
- функции за работа с принтер
- функции за създаване на приложения с графичен потребителски интерфейс базирани на библиотеката GTK
- функции за изпращане на e-mail съобщения
- и много други.
PHP може да работи с всички модерни системи за управлени на релационни бази данни, като MySQL, PostgreSQL, Microsoft SQL Server, Oracle, SQLite и д.р.
На официалния сайт на PHP се намира обширна библиотека с информация за езика и модулите му, която може да се използва и за основно запознаване с езика, и като справочник по време на работата с него.
Поради отворения характер на езика съществуват множество потребителски групи в България и по света посветени на програмирането с PHP, където всеки може да получи помощ в работата си с този език.
История
Началото на PHP е поставено от Размус Лердорф (Rasmus Lerdorf) през 1994 г., въпреки че самият Лердорф смята 1995-та за рождената година на PHP, защото тогава "отваря" кода на новия език за програмиране. В началото Размус създава Perl скриптове за следене на посещенията на резюмето на личната му страница, които впоследствие пренаписва и така се създава първата версия на PHP (тогава означаващо Personal Home Page).
През 1997 двамата израелски студенти Andi Gutmans и Zeev Zuraski пренаписват целия език, констарирайки множеството бъгове и отчасти неправилни концепции за строеж на програмен език и по-късно известяват Размус с техните предложения. Той ги приема и така се създава основният екип от разработчици (PHP Core team), който по-късно се превръща в групата на PHP (PHP group).
През 1997 г. двамата израелски студенти Зеев Сураски (Zeev Suraski) и Анди Гутманс (Andi Gutmans) заедно с Размус Лердорф добавят нови функционалности и API за допълнителни модули към езика и така се създава PHP 3. Сураски и Гутманс пренаписват отново ядрото на езика и създават Zend engine през 1999. Пренаписването е направено основно от Сураски и Гутманс като курсов проект по време на тяхното обучение в университета, който посещават. Пренаписването е в следствие на факта, че кодът на PHP2 е бил труден за поддръжка и доста нестабилен.
През 2005-та бяха чествани 10 години PHP, наред с 10 години MySQL. До сега през годините ядрото на PHP е претърпяло много промени, като най-забележимите са следните:
- 22 Май 2000 г. - излиза версия 4 на PHP основана на Zend Engine 1.0
- Юли 2003 г. - версия 5 на PHP основана на Zend Engine II
- 2005 г. - Уникод функционалност
Синтаксис и семантика
PHP действа главно като филтър, който взема съдържанието на файла и специалните PHP инструкции, като ги конвертира във вид за показ.
Тук има пример за код, който показва "Здравей, свят":
<?php
echo 'Здравей, свят!';/*hello world*/
?>
ето и пример за свързване към СУБД
<?php
$DbUser = "root";
$DbPassword = "password";
$DbHost = "localhost";
$cn = mysql_connect($DbHost, $DbUser, $DbPassword) or die("Error in MySQL:" + mysql_error());
mysql_select_db("database", $cn);
$rs = mysql_query("SELECT UserId,Username, UserPassword FROM Users WHERE `Username` = '" . $uname . "' AND UserPassword = '" . $upass . "' LIMIT 1;", $cn);
if(mysql_num_rows($rs) == 1) { $_SESSION['logged'] = true; }
mysql_close($cn);
?>
PHP просто изпълнява кода в рамките на своите граници, като <?php ?>. Границите <? ?> са идентични като функционалност, но това зависи от настройките на сървъра. Всичко извън рамките се изпраща директно към изхода, без да бъде изпълнявано от PHP. Горният пример е еднакъв с долния текст (и наистина е конвертиран в този вид):
Здравей, свят!
Предимството на PHP е, че позволява командите му да бъдат влагани в HTML документите, като крайните потребители не могат да видят изходния код написан на PHP, който преработва всичко извън рамките му:
<?php
// PHP код
?>
обикновен HTML код
<?
// още PHP код
?>
Предимства на езика
- PHP работи на множество операционни системи (Unix, Linux, Windows, BSD, Mac OS X) и уеб сървъри - Apache, IIS
- PHP е лесен и ефективен за разработване
- PHP изпълнява бързо код
- PHP е безплатен и се разпространява под лиценза на BSD
- PHP може да бъде лесно модифициран и адаптиран към нуждите на прилагащата го организация
- PHP е създаден за разработката на уеб приложения
- Поддръжката за PHP разработчици е гарантирана от множеството форуми и приложения на общността
- PHP е вече широко разпространен в световната мрежа
- PHP не изисква особени умения от разработчици работили на структурни езици
- По аналогия с Perl към стандартните класове на PHP могат да бъдат писани и много допълнителни модули
- PHP поддрържа следните системи за управление на бази от данни:
IBM DB2 - formix - Ingres, Microsoft SQL Server (MS SQL), mSQL, [MySQL], [Oracle], PostgreSQL, Sybase
- PHP поддържа и ODBC
- PHP масово се използва заради това че на програмистите не им е нужно да са много квалифицирани, което води до по евтино платен персонал в фирмите, по ниска цена на приложенията за клиентите, по голяма използваемост.
Критики
- В по-старите версии на езика по подразбиране съществува функционалност, чрез която крайните потребители могат да подават направо променливи към PHP скрипта (register_globals). Настройката по подразбиране е премахната от версия 4.2.0, но съществуват все още много стари приложения, които предполагат употребата на тази функция.
- PHP не поддържа напълно Unicode. Пълната поддръжка се предвижда в PHP 6.
- PHP не поддържа именни пространства - т.е. всички функции се намират в едно именно пространство.
- Съществуват много функции на библиотеки с идентична функционалност.
- PHP няма вградена поддръжка на нишки (threads), което прави обработката на големи масиви от данни много трудна: страницата не се зарежда преди целият масив от данни да е преработен и ако потребителят прекъсне зареждането ѝ (и уеб сървърът разрешава прекъсване на заявката), прекъсва и обработката на данните.
Модули за достъп до база от данни
PHP поддържа връзки към следните СУБД (Системи за Управление на База от Данни) - MySQL, PostgreSQL, SQLite ja Oracle. Освен това чрез ODBC съществува и общ интерфейст със следните СУБД - Adabas D, IBM DB2, iODBC, Solid и Sybase SQL Anywhere.
Литература
- Х.Кастането, Х.Роат, С.Шуман, К.Скол. Професионално програмиране с PHP [1] ISBN 954-685-142-6
- Leon Atkinson , Zeev Suraski Core PHP Programming Core PHP programming third edition ISBN 0-13-046346-9
Външни препратки
- Ръководство по PHP Официална документация на PHP
- Страницата за сваляне на общия пакет за Windows, Apache , PHP и MySQL