PHP
PHP
PHP: Hypertext Preprocessor
Парадигмаимперативен, обектно ориентиран, процедурен, рефлексивен език
Реализиране през1995 г.;
преди 29 години
 (1995)[1]
АвторРазмус Лердорф
Софтуерен разработчикThe PHP Group
Последна стабилна версия8.1.13 от 24 ноември 2022 г.;
преди 18 месеца
 (2022-11-24)[2]
Типизация на даннитединамична, слаба типизация
ИмплементацияZend Engine, Phalanger, Quercus, Project Zero, HipHop
Повлиян отPerl, C, C++, Java, Tcl[1]
Език на имплементацияC
Уебсайтwww.php.net
Лого на уикикниги PHP Programming в Уикикниги
PHP в Общомедия

PHP е скриптов език върху сървърната (обслужваща) страна. Той е език с отворен код, който е проектиран за уеб програмиране и е широко използван за създаване на сървърни приложения и динамично уеб съдържание. Автор на езика е канадецът от датски произход Размус Лердорф. PHP е рекурсивен акроним от PHP: Hypertext Preprocessor (като в самото начало има значение, дадено от създателите му, на Personal Home Page). Пример за PHP приложение е МедияУики – софтуерът, използван от Уикипедия.

Преглед

PHP е скриптов език със синтаксис, базиран на C и Perl. Използва се предимно в интернет среда за изпълнение на широк кръг от услуги и е един от най-популярните езици за програмиране в интернет.

PHP се разпространява под отворен лиценз (PHP License), който по своята същност е BSD лиценз и който позволява безплатно разпространяване на програмния код на интерпретатора на езика, както и създаването на производни интерпретатори под други лицензи с уговорката, че тези интерпретатори не могат да включват PHP в името си. Фактът, че PHP се разпространява свободно, го прави удачен избор за изграждане на уеб сървър, базиран изцяло на свободни продукти – GNU/Linux, Apache, MySQL/PostgreSQL и др.

При поискване кодът, който е написан на PHP, се интерпретира от уеб сървъра, на който е качен, и резултатът се връща на уеб браузърa. Потребителят не може да види чистия PHP код, без да има достъп до самия файл, в който той е записан. По този начин се осигурява защитата. PHP файловете могат да съдържат текст, HTML, CSS, JavaScript и PHP код и имат разширение *.php.

Самият език е преносим на много изчислителни архитектури и операционни системи като GNU/Linux, UNIX, macOS, Windows.

Съществуват множество модули (разширения) за PHP, които добавят различни функционалности и позволяват много по-бързо и ефективно разработване. Такива допълнителни функционалности към езика са:

PHP може да работи с повечето модерни бази данни – MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, Oracle, SQLite и др.

На официалния сайт на PHP се намира обширна библиотека с информация за езика и модулите му, която може да се използва както за основно запознаване с езика, така и като справочник по време на работата с него.

Поради отворения характер на езика съществуват множество потребителски групи в България и по света, посветени на програмирането с PHP, където всеки може да получи помощ в работата си с този език.

История

Началото на PHP е поставено от Размус Лердорф[3] през 1994 г., въпреки че самият Лердорф смята 1995 за рождената година на PHP, защото тогава „отваря“ кода на новия език за програмиране.[4] В началото Размус създава Perl скриптове за следене на посещенията на резюмето на личната му страница, които впоследствие пренаписва и така се създава първата версия на PHP (тогава означаващо Personal Home Page).

През 1997 г. двамата израелски студенти на Technion (израелски технологичен институт) Зеев Сураски и Анди Гутманс пренаписват целия език, констатирайки множеството бъгове и отчасти неправилни концепции за строеж на програмен език и по-късно известяват Размус с техните предложения. Той ги приема и така се създава основният екип от разработчици (PHP Core team), който по-късно се превръща в групата на PHP (PHP group). Зеев Сураски и Анди Гутманс заедно с Размус Лердорф добавят нови функционалности и API за допълнителни модули към езика и така се създава PHP 3. Сураски и Гутманс пренаписват отново ядрото на езика и създават Zend engine през 1999 г. Пренаписването е направено основно от Сураски и Гутманс като курсов проект по време на тяхното обучение в Technion. Пренаписването е вследствие на факта, че кодът на PHP 2 е бил труден за поддръжка и доста нестабилен.

През 2005 се честват 10 години от създаването на PHP и 10 години от създаването на MySQL.

През годините ядрото на PHP претърпява много промени, като най-забележимите са следните:

Синтаксис и семантика

PHP действа главно като филтър, който взема съдържанието на файл и изпълнява специални PHP инструкции, описани във файла. PHP скриптът има начален и краен таг, между които е разположено съдържанието. Отварящият таг е <?php, а затварящият е ?>. Цялата инструкция трябва да завършва с ;.[5]

Тук има пример за код, който визуализира „Здравей, свят“:

<?php
echo 'Здравей, свят!'; /* Hello world */
?>

Ето и пример за свързване към база данни и изпълняване на проста заявка към нея:

<?php
session_start();
$dbuser = "root";
$dbpassword = "password";
$dbhost = "localhost";
$dbname = "database";
$dbc = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
$q = mysqli_query($dbc,"SELECT user_id, username, password FROM users WHERE `username` = '" . $uname . "' AND password = '" . $upass . "' LIMIT 1");
if(mysqli_num_rows($q) == 1)
    $_SESSION['logged'] = true;
?>

Обектно ориентиран PHP:

<?php
class Beginning {
    function start()
    {
      echo 'Hello, world';
    }
}
$var = new Beginning();
$var->start();
?>

Дата и час:

<?php
$date = date("d.m.Y H:i:s");
echo $date; // Пример 14.07.2020 14:18:25
?>

PHP изпълнява кода в рамките на своите граници – кода между <?php и ?>, също между <?= и ?> (кратко echo). В зависимост от настройките на сървъра за отваряща граница може да се използва само <?, но това не се препоръчва.[6] При липса на допълнителна обработка или прекъсване на зареждането на дадена страница всичко извън рамките се изпраща директно към изхода, без да бъде изпълнявано от PHP. Горният пример е еднакъв с долния текст (и наистина е конвертиран в този вид):

Здравей, свят!

Предимство на PHP е, че позволява командите му да бъдат влагани в HTML документите, като крайните потребители не могат да видят изходния код, написан на PHP, който преработва всичко извън рамките му:

<?php
// PHP код
?>
обикновен HTML код
<?
// още PHP код
?>

Работа с функции:

<?php
function sum(int $a, int $b): int{
    return $a + $b;
}

$num1 = 1;
$num2 = 2 + 3;

echo sum($num1,$num2); //6

Предимства на езика

IBM DB2 – formix – Ingres, Microsoft SQL Server (MS SQL), mSQL, MySQL, Oracle, PostgreSQL, Sybase.

Критики

Модули за достъп до база от данни

PHP поддържа връзки към следните СУБД (Системи за управление на бази от данни) – MySQL, PostgreSQL, SQLite ja Oracle. Освен това чрез ODBC съществува и общ интерфейс със следните СУБД – Adabas D, IBM DB2, iODBC, Solid и Sybase SQL Anywhere.

PHP Framework

Литература

Източници

  1. а б Размус Лердорф започва през 1994 г. асемблиране на C код, оригинално написан за CGI скриптове в библиотека и с достъп до функциите на библиотеката, включително SQL запитвания, чрез команди включени в HTML; Rasmus, Lerdorf. PHP на Hormones – история на PHP, представена от Размус Лердорф на MySQL конференция в Санта Клара, Калифорния (на английски, mp3) // The Conversations Network, 26 април 2007. Посетен на 11 декември 2009. Всеки ден променях драстично езика и не след дълго – през 1995, към средата на 1995 или някъде там PHP изглеждаше като това. Което всъщност не е далеч от днешния вид на PHP.
  2. PHP официален сайт // Архивиран от оригинала на 1998-07-01. Посетен на 18 февруари 2019.
  3. PHP on Hormones // 26 април 2007. Посетен на 14 март 2011. (на английски)
  4. PHP/FI release announcement // 8 юни 1995. Посетен на 14 март 2011. (на английски)
  5. PHP: Hypertext Preprocessor // php.net. Посетен на 19 януари 2022.
  6. Граници на PHP кода // The PHP Group. Посетен на 8 февруари 2010.

Външни препратки