Спецификация языка PHP?

Я знаю, что есть официальный документ для Java (JLS), я хотел бы знать, относится ли это и к языку PHP. Я нашел раздел "Справочник по языку" в руководстве по PHP, но он не выглядит таким подробным, как JLS.

Дело в том, что у меня хорошее практическое знание PHP, но я совершенно не понимаю, что на самом деле происходит под капотом.

Если нет официального документа, не могли бы вы порекомендовать мне хорошие книги для чтения?

7 ответов

Решение

Первоначальный проект спецификации для языка PHP уже объявлен. Введение спецификации гласит:

Эта спецификация предназначена для предоставления полного и краткого определения синтаксиса и семантики языка PHP, подходящего для использования следующими:

  • Разработчики PHP-компилятора
  • Разработчики тестового набора для языка PHP
  • Программисты пишут код PHP

На данный момент библиотека времени выполнения была исключена, как это описано на сайте http://www.php.net/. Таким образом, все прямые ссылки на библиотечные средства имеют заполнители формы (§xx).

Смотрите также последнюю версию проекта.

Об этой теме не так давно шла дискуссия во внутреннем списке рассылки.

Вы можете проверить статус там.

Начальная запись: http://marc.info/?l=php-internals&m=129379585417113&w=2

Уважаемые внутренности

После завистливого взгляда на грамматику питонов ( http://docs.python.org/dev/reference/grammar.html) я продолжаю чувствовать, что PHP упускает множество интересных метапроектов из-за отсутствия официального EBNF. [...]

и еще один, надеюсь, полезный, описывающий некоторую грамматику:

http://marc.info/?l=php-internals&m=129387252319019&w=2

И статистика принимает в этом вопросе:

http://marc.info/?l=php-internals&m=129383062812273&w=2

Привет! [...]

Вы не единственный, кто думает об этом. Но до сих пор никто не перешел от размышлений к этому на самом деле:)

- Станислав Малышев, архитектор программного обеспечения

Из того, что я читал в Википедии, и PHP, и Perl5 объединяют то, что они являются "языками", которые полностью определяются через одну единственную реализацию. Язык - это именно то, что делает переводчик. Они не похожи на C или C++, Java или ECMAScript, которые являются стандартизированными языками с множеством различных реализаций. (Очевидно, что Perl6 будет другим и на самом деле будет иметь спецификацию. Ни одна идея PHP также не сделает этот шаг).

В этом посте сообщество HHVM объявило спецификацию для PHP: http://hhvm.com/blog/5723/announcing-a-specification-for-php

Теперь он находится в следующем репозитории Github: https://github.com/php/php-langspec

Для формально склонных, подробная (исполняемая) семантика PHP доступна на www.phpsemantics.org и будет представлена ​​завтра на конференции ECOOP 2014 в Швеции.

Из этого (устаревшего) поста в блоге видно, что для PHP нет спецификации, как для Java.

PHP и Java - это разные языки для разных целей, конечно, документация не соответствует одному и тому же стандарту. Я думаю php.net это лучшее место, где можно найти все, что вы хотите, а также иметь хорошие книги, все зависит от ваших потребностей.

У Java также есть отличные книги и, конечно, спецификация Java.

У PHP нет спецификации, но есть техническое руководство и множество примеров. Что еще тебе нужно? Возможно, какую-то конкретную книгу, попробуйте поискать Wiley Publishing, где они печатают книги о PHP и других языках.

Другие вопросы по тегам