PHP, язык для построения веб-страниц на сервере

Le langage de programmation PHP

Иногда тебе рассказывают, как оптимизировать язык, чтобы ускорить его работу, а Facebook даже выбрала радикальный подход, создав компилятор и виртуальную машину.
Но этот язык стал универсальным на стороне сервера. PHP - это P в популярной архитектуре LAMP, которая включает операционную систему Linux, сервер Apache и базу данных MySQL.

Сценарий PHP создает HTML-страницы и может быть вложен в HTML-код, например JavaScript, но интерпретируется на сервере. Переводчик также может работать на местной станции.

Язык был разработан в 1993 году Расмусом Лердорфом, так как сам нуждался в бесплатном инструменте для программирования веб-страниц и распространял его в свободном источнике под названием PHP/FI, Personal Home Pages/Form Interpreter.

"Я никогда не думал, написав PHP, что однажды миллионы людей посмотрят на мой код через мое плечо. Если бы я это представлял, я бы сделал некоторые вещи по-другому".
Расмус Лердорф, 2012.

После работы в Yahoo! Расмус Лердорф был принят на работу в WePay, а затем в Etsy. Затем он разработает PHP с помощью нескольких программистов, которые пишут новый движок для PHP 3 и дают ему название PHP Hypertext Processor в 1997 году. Рекурсивные аббревиатуры модны, с такими именами, как GNU is Not Unix, PNG is Not GIF и т. Д.
В 1999 году для PHP 4 был создан двигатель Zend.
PHP 5 появился в 2004 году, он ориентирован на объекты и поддерживает XML. Скорость выполнения была увеличена вдвое с PHP 5.3 до PHP 5.6.
PHP 7 появился 3 декабря 2015 года. Не существует PHP 6 после прерванного проекта, который получил часть своего вклада в PHP 5.

Описание языка

PHP повторяет синтаксис C и идеи оболочки Unix.

Синтаксис

Контрольные структуры

Структура if имеет варианты elsive и else.

if(x < 10) {
   echo "$x inférieur à 10\n";
}
elseif(x > 10) {
   echo "$x supérieur à  10\n";
}
else { echo 'etc...\n' }
Уильная структура :
while(expr) {
    ... 
} 

Функция или метод

Определение функции начинается с ключевого слова function, за которым следует имя и список аргументов, разделенных запятыми, а тело находится между {и}.
Ключевое слово return в теле определения позволяет вернуть значение.

function nomfonc( arguments ) {
...instructions... return(x);
}

Класс

class nom {
    ...
}

Тело похоже на глобальный код.

Строка

Пример: Отображение букв текста.

$str = "demo";
$len = strlen($str);
for($i = 0; $i < $len; $i++) { 
     echo $str[$i];
} 

Картина

Объявить, объединить, взять подсборку, показать элементы.

$arr = array(1,2,3 );
$arr = array_merge($arr, array( 4,5));
$sub = array_slice(|$arr, 1,3);
foreach($sub $as $num) {
     echo $num;
} 

Должно отображаться 234.

Интегрированный локальный сервер

Для локальной работы, в частности для разработки кода, необходимо установить сервер, а затем выполнить сценарий с префиксом http ://localhost.

С версии 5.4 это становится лишним, поскольку в дистрибутив включен локальный сервер. Сервер запускается с помощью следующей команды:

php -S localhost:1100

Где 1100 - номер порта (вот пример). Чтобы запустить сценарий index.php и показать результат в браузере, введите в URL-строку:

localhost:1100 

Преимущество перед такими решениями, как Wamp, заключается в том, что нет необходимости переносить файлы в подкаталоги Wamp, каталог www в данном случае. Сценарии и страницы PHP работают там, где они находятся.

Зачем использовать PHP? Опыт пользователя

PHP - это интернет-инструмент, работающий на сервере для выполнения скриптов или создания или редактирования веб-страниц, в которые он включен.
Он подходит для обработки важных данных на стороне сервера и создания HTML-страниц, отображающих результаты (JavaScript подходит для динамического редактирования страниц на стороне браузера).
PHP 5 является конкурентом Java в простом виде, в качестве сервера приложений и представляет собой платформу для веб-приложений и сервисов.
Это наиболее используемый язык для создания CMS, систем управления содержанием.

Язык разрабатывался ежедневно, чтобы добавить нужные функции, без четкого плана. В связи с этим отсутствует согласованность, четкие правила, и необходимо постоянно обращаться к руководству, с тем чтобы найти, в частности, параметры функции.
Например, функция substr_replace имеет в качестве аргументов начальную цепь, за которой следует заменяемая часть, и альтернативную строку, в то время как функция str_replace имеет в качестве аргументов заменяемую часть и альтернативную строку, за которой следует начальная строка.
То, что таблица - это тоже словарь, поэтому подсказки - это ключи, - источник головной боли для программистов.

На самом деле существует множество альтернатив: Python, Ruby, Node, Go, а совсем недавно - Julia .

PHP 6

(на самом деле PHP 5.x)

Проект PHP 6, который должен был использовать формат кодировки Юникод, был прекращен. Но некоторые функции, предусмотренные проектом, включены или будут включены в PHP 5.

  1. Пространства имен.
  2. Генераторы и короутины (PHP 5.5).
  3. XMLReader. Для чтения XML-файлов в прогрессивном режиме Sax.
  4. XMLWriter.
  5. goto, снова появляется директива языка Basic.
  6. Лямбда-функции или закрытия (без имени).
  7. Расширение filefinfo для файловой системы.
  8. Фар. Позволяет поместить PHP-приложение в один исполняемый файл, как это делается в Java с .jar.
  9. Интл. Интернационализация.
  10. Операторы continule и break смогут работать только с константами или без параметров.
  11. Функция ereg () для регулярных выражений будет удалена. Его необходимо заменить preg_match (), формат которого отличается, но используется в более широком смысле.
  12. Будет удалена совместимость со старыми форматами, такими как GD 1 и Freetype 1.
  13. Magic_quotes, очень описанное свойство, потому что источник недостатков безопасности больше не будет поддерживаться.
  14. То же самое касается register_global, safe_mode и register_long_arrays.
    Таким образом, для обеспечения их совместимости необходимо будет изменить существующие приложения.
  15. Маяки <? php?> - единственные узнаваемые.
  16. dl () для загрузки динамической библиотеки отключается с 5.3
  17. .
  18. Array_column возвращает колону в массиве multi-dim.

Поддержка Windows XP прекращается с версии 5.5.

В 2008 году генеральный директор Zend заявил об этом в интервью:

Итак, мы планируем долгосрочный цикл развертывания для PHP 6 и не хотим идти по тому же пути, что и проект Perl, при этом соавторы все еще работают над Perl 6 шесть лет спустя. Люди смеются над Microsoft, но посмотрите Perl 6.

В 2015 году PHP 6 до сих пор не существует, и мы предпочитали перейти напрямую на PHP 7. Если честно, Perl 6 тоже еще не достроен !

PHP 7

Ранее названная PHP Next Generation (PHPNG), эта новая версия сменяет PHP 5 (PHP 6 никогда не будет), а с одной стороны хочет ускорить работу с интерпретатором JIT, как это делает HHVM, с другой - сделать синтаксис более консистентным. Прирост производительности составляет в среднем 100% по сравнению с 5.6.
Асинхронное программирование обеспечивает параллельную обработку.

Нужно ли переключать сайт на PHP 7? Это повышает производительность и экономию памяти, поэтому это определенно рекомендуется. Однако необходимо убедиться в отсутствии несовместимости, поскольку набор устаревших, но все еще активных функций уже удален. Например, функции mysql .

Оптимизация PHP: Google против команды PHP

Специалисты Google дают советы вебмастерам по оптимизации кода страниц и скриптов. Одна из этих статей касается PHP и в нескольких пунктах указывает, как изменить код, заменить контрольные структуры, оптимизировать его в лучшем случае.
Но со стороны создателей языка мы восстаем и оспариваем этот анализ. Эта полемика интересна вебмастерам, которые используют PHP на своем сайте, так как дает полезные разъяснения по оптимизации кода.

Единственное, в чем согласны обе стороны, так это в том, что лучше мигрировать на последнюю версию PHP, так как она всегда самая быстрая.

HHVM

HHVM (Hip Hop Virtual Machine) - JIT-компилятор, созданный и используемый Facebook, доступный на GitHub с исходным кодом. Работая с виртуальной машиной HHVM, PHP становится на два быстрее, чем с интерпретатором Zend. HHVM заменила PHP 5.3 и в «Википедии» (сейчас готовятся мигрировать на PHP 7).
Сравнения с PHP 7 показали, что HHVM немного быстрее для предыдущего кода, но когда код использует новизну языка, его выигрывает интерпретатор PHP 7.

Для анализа его работы - подробная статья: LLVM-код генерации в HHVM. LLVM теперь является конечным бэкендом в цепочке промежуточных представлений .

De PHP à LLVM avec HHVM

PHP компилируется в байт-код HHVM, а затем во второе промежуточное представление. Затем переводится на язык сборки, который может быть преобразован в биткод LLVM.

Виртуальная машина работает с языком Hack, который заменил PHP и стал несовместимым с ним в 2018 году. Его можно заменить на PHP 7 без потери производительности.

Инструменты и учебники

Бесплатные издатели и IDE

Большинство редакторов кода имеют синтаксическую окраску и самокоррекцию для PHP, Visual Studio Code на example. Некоторые ПИИ предлагают дополнительные инструменты.

Помощь в целях развития

Сценарии и учебники

Читайте также: Фреймворки PHP.

Форум

Какой лучший редактор PHP?

26-01-2009 19:04:41

Фодарт

Количество редакторов для PHP есть, но хотелось бы узнать, знает ли кто-нибудь PHP-редактор с автозаполнением и всем, что можно найти на современных редакторах... Я работаю под управлением Windows, но иногда и под управлением Linux.
28-01-2009 14:47:48

веб-мастер

Sun решила распространить свою NetBeans IDE на другие языки, кроме Java, в частности PHP, JavaScript и C++. Что делает это бесплатное программное обеспечение очень полным, даже интегрировав сервер для тестирования PHP скриптов в автономном режиме! Это, наверное, самое полное. Работает под управлением Windows и Linux.