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.
- Синтаксис C, чем меньше типизированных переменных, тем больше :
- Динамические переменные на $.
- Ориентированные объекты.
- Ассоциативные таблицы (таблицы с ключами поиска).
- Конструкция foreach для сканирования таблиц.
- Анимация строки - можно поместить переменные в строки символов .
- Обладает большим количеством функций, предназначенных для веб-сайтов и баз данных.
Синтаксис
- Язык не чувствителен к регистру.
- Переменные обозначаются символом $ и тип не указан.
- Литеральные строки между «» оцениваются для специальных кодов и переменных, между «» - нет.
- <? php и?> должны быть включены программы PHP .
- # или//запускают комментарий.
- array («1» =>» «a,...) - словарь.
- const добавляется в PHP 5.6.
Контрольные структуры
Структура 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.
- Пространства имен.
- Генераторы и короутины (PHP 5.5).
- XMLReader. Для чтения XML-файлов в прогрессивном режиме Sax.
- XMLWriter.
- goto, снова появляется директива языка Basic.
- Лямбда-функции или закрытия (без имени).
- Расширение filefinfo для файловой системы.
- Фар. Позволяет поместить PHP-приложение в один исполняемый файл, как это делается в Java с .jar.
- Интл. Интернационализация.
- Операторы continule и break смогут работать только с константами или без параметров.
- Функция ereg () для регулярных выражений будет удалена. Его необходимо заменить preg_match (), формат которого отличается, но используется в более широком смысле.
- Будет удалена совместимость со старыми форматами, такими как GD 1 и Freetype 1.
- Magic_quotes, очень описанное свойство, потому что источник недостатков безопасности больше не будет поддерживаться.
- То же самое касается register_global, safe_mode и register_long_arrays.
Таким образом, для обеспечения их совместимости необходимо будет изменить существующие приложения. - Маяки <? php?> - единственные узнаваемые.
- dl () для загрузки динамической библиотеки отключается с 5.3 .
- 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.
Асинхронное программирование обеспечивает параллельную обработку.
- Язык поддерживает типы аргументов и возврат функции.
function mult(float $a, float $b) : float { return $a * $b; }
- <=>Добавляется оператор (оператор пространства). Он возвращает 0 в случае равенства двух сравниваемых значений, 1, если первое больше второго, и -1 в обратном случае.
- Генератор, с ключевым словом yield.
- Таблица констант, вид перечисления.
- Заборы (см. словарь).
- Функция unserialize () с фильтрами для безопасности .
- Юникод.
- Список новых зарезервированных слов: bool, int, float, string, digital, NULL, TRUE, FALSE, resource, object, mixed .
- Структура списка () не всегда соответствует одному и тому же порядку назначения переменных .
Нужно ли переключать сайт на PHP 7? Это повышает производительность и экономию памяти, поэтому это определенно рекомендуется. Однако необходимо убедиться в отсутствии несовместимости, поскольку набор устаревших, но все еще активных функций уже удален. Например, функции mysql .
Оптимизация PHP: Google против команды PHP
Специалисты Google дают советы вебмастерам по оптимизации кода страниц и скриптов. Одна из этих статей касается PHP и в нескольких пунктах указывает, как изменить код, заменить контрольные структуры, оптимизировать его в лучшем случае.
Но со стороны создателей языка мы восстаем и оспариваем этот анализ. Эта полемика интересна вебмастерам, которые используют PHP на своем сайте, так как дает полезные разъяснения по оптимизации кода.
-
Копировать переменные или нет?
Фактически PHP оптимизирует назначение, и значение переменных физически копируется только при изменении. -
Одинарные или двойные кавычки?
Это не имеет значения. Даже если есть переменные, которые нужно интерпретировать в строках в двойных кавычках, это не больше, чем при объединении переменных и концов строк. -
Эхо или печать ?
Скорость выполнения аналогична, но в некоторых случаях это может зависеть от конфигурации сервера.
(Вопрос скорости, уточним, полезен при создании страниц из команд в PHP.) -
Switch/case или if/else?
Опять же, использование того или иного кода не имеет значения, поскольку внутренний код одинаковый.
Единственное, в чем согласны обе стороны, так это в том, что лучше мигрировать на последнюю версию 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 теперь является конечным бэкендом в цепочке промежуточных представлений .
PHP компилируется в байт-код HHVM, а затем во второе промежуточное представление. Затем переводится на язык сборки, который может быть преобразован в биткод LLVM.
Виртуальная машина работает с языком Hack, который заменил PHP и стал несовместимым с ним в 2018 году. Его можно заменить на PHP 7 без потери производительности.
Инструменты и учебники
Бесплатные издатели и IDE
Большинство редакторов кода имеют синтаксическую окраску и самокоррекцию для PHP, Visual Studio Code на example. Некоторые ПИИ предлагают дополнительные инструменты.
- NetBeans
IDE из Sun в Java для PHP и других языков. NetBeans извлекает выгоду из сервера, встроенного в PHP, при условии, что выполнение настраивается в свойствах проекта. Затем мы сможем запустить текущий сценарий из редактора и увидеть результат, отображаемый в браузере по умолчанию. - Студия Aptana
Включает редактор PHP. (Windows) - Затмение IDE
Расширение до Eclipse для PHP-среды.
Помощь в целях развития
- Php.net
Официальный сайт, где найти исполняемый файл и исходники. - Хак.
Статически типизированная версия PHP, совместимая с PHP до 2018 года, написанная компанией Facebook. - HippyVM
Другая виртуальная машина, более быстрая и создающая мост с Python. - EasyPHP
Полная и простая установка вместе с Apache для локального программирования. - Сервер XAMPP
Другой локальный сервер Windows Apache Linux PHP. Поместите свои PHP-скрипты в подкаталоги HTML установочного каталога Xampp или www для Wamp и они смогут работать как на реальном сервере с запросами MySQL и PhpMyAdmin или SQLite Manager для управления базами данных! - Xdebug
Интерактивный отладчик для PHP. - PHP France
Форум на французском языке.
Сценарии и учебники
- Учебник SQL с PHP и MySQL.
Научись выполнять PHP-скрипты для использования SQL на сайте, с примерами. - JavaScript в PHP. Как интегрировать компилятор V8 с языком PHP.
Читайте также: Фреймворки PHP.
Какой лучший редактор PHP?
Фодарт
веб-мастер