Php создатель – Создатель PHP Расмус Лердорф — об анархии и демократии в разработке языка, PHP 5.6 и жалующихся программистах

Содержание

25 PHP-разработчиков, на которых можно подписаться / Habr

Статья является переводом 25 PHP Developers to Follow Online.

Создание PHP фреймворков — это тяжелое занятие, но следить за их развитием и деятельностью коммиттеров в Твиттере — очень просто. Если вы захотите увидеть в какую сторону движется PHP-сообщество, что сейчас является трендом и какие инструменты применяются в передовых проектах, просто посмотрите, подпишитесь на этих людей.

Вот список из 25 PHP-разработчиков, на которых стоит подписаться. Я надеюсь, что вы найдете их опыт полезным и обязательно воспользуетесь применительно к себе.

1. Rob Allen. Контрибьютор Zend Framework, член совета Zend Framework Education, и соавтор книги Zend Framework in Action. Создатель Nineteen Feet.

2. Sebastian Bergmann. Пионер автоматизированного тестирования в PHP. Создатель фреймворка для тестирования PHPUnit и сооснователь thePHP.cc.

3. Jordi Boggiano. Ведущий разработчик Composer. Участвует в разработке Symfony2. Партнер в Nelmio.

4. Dries Buytaert. Создатель и лидер проекта Drupal. Президент Drupal Association. Сооснователь и технический директор в Acquia.

5. Angela Byron. Один из маинтейнеров ядра Drupal и директор по вопросам развития сообщества в Acquia. Получатель награды для лучших контрибьюторов Google-O’Reilly Open 2008 Source и соавтор Using Drupal.

6. Evan Coury. Сертифицированный инженер по PHP 5.3 and Zend Framework, регулярный докладчик на конференциях по разработке. Создатель Roave.

7. Cal Evans. Архитектор. Представитель разработчиков в GetPantheon.

8. Anthony Ferrara. Разработчик с экспертизами в безопасности, производительности и ООП. Разработал новый, более безопасный password API в PHP 5.5.

9. Ed Finkler. Член команды Fictive Kin, работает в Gimme Bar и над другими продуктами. Создатель Open Sourcing Mental Illness, кампании по повышению осведомленности и пониманию психических заболеваний в сообществе разработчиков. Соведущий подкаста Development Hell. Создал Spaz, инструмент для аудита PHPSpecInfo, и библиотеку Inspekt для PHP.

10. Larry Garfield. Архитектор в Palantir. Также принимает участие как ведущий архитектор Drupal 7 базы данных и лид по веб-сервисам в Drupal 8. Соавтор Drupal 7 Module Development.

11. Sara Golemon. Инженер в Facebook, работает над HHVM. Написала libssh3 и (как написано на ее странице) «значительный кусок поискового фронтенда Yahoo!». Автор Extending and Embedding PHP.

12. Andi Gutmans. Соавтор PHP 3 и движка Zend, разработчик ядра PHP4. Сооснователь и исполнительный директор Zend Technologies. Соавтор PHP 5 Power Programming.

13. Emma Jane Hogbin. Друпал разработчик, темизатор, и опенсоурсный гик. Соавтор книги Front End Drupal и автор

Drupal User’s Guide.

14. Rasmus Lerdorf. Создатель PHP.

15. Matthew Weier O’Phinney. Архитектор open-souce ПО. ПМ в Zend Framework. Сертифицированный zend инженер и член Zend Education Advisory Board. Спикер и писатель.

16. Taylor Otwell. Создал Laravel.

17. Nikita Popov. Студент берлинского технического университета. Маинтейнер PHP парсера, написанного на PHP, и котрибьютор PHP 5.5 фич, таких как генераторы и сопрограммы, поддерживает произвольные значения в empty().

18. Fabien Potencier. Сооснователь и исполнительный директор SensioLabs. Основатель и лидер проекта Symfony.

19. Derick Rethans. PHP инженер и евангелист в MongoDB, автор Xdebug. Автор php/architect’s Guide to Data and Time Programming. Соавтор PHP 5 Power Programming.

20. Lukas Smith. Разработчик Symfony. Контрибьютор PHP и PEAR. Программист и частично менеджер в Liip.

21. Marco Tabini. Вицепрезидент TelemetryApp. С декабря 2012 работает с php|architect, пишет отличные публикации для PHP разработчиков.

22. Juan Treminio. Опытный PHP/MySQL веб-разработчик из Mytrus. Его работа над PuPHPet дает огромный вклад в развитие сообщества.

23. Jonathan Wage. Директор по технологиям OpenSky.com. Контрибьютор Doctrine и Symfony.

24. David Walsh. Веб-разработчик в Mozilla, также является core-программистом MooTools,

25. Igor Wiedler. Контрибьютор Symfony2, Silex и Composer. Бывший тимлид проекта phpBB.

*Специальный бонусный линк: *@official_php, официальный твиттер-аккаунт php.net. Подписывайтесь чтобы узнать фишки, трюки, новые релизы, баг-фиксы и всю самую последнюю информацию о PHP.

UPD1. спасибо zloyusr

26. Benjamin Eberlei. Разработчик Doctrine.

27. Bernhard Schussek. Разработчик Symfony (в частности Symfony Forms).

28. William Durand. Разработчик Propel.

29. Mathias Verraes. Популярный спикер на Agile и PHP конференциях.

UPD2. спасибо shoomyst

30. Phil Sturgeon. экс-основатель PyroCMS, ведущий разработчик в Ride, член PHP-FIG с правом голоса.

31. Marco Pivetta. Консультант по ПО в RoaveTeam, член core-команды doctrine2, член core-команды ZF2, помогает в развитии symfony (иногда).

32. Matthias Noback. Голландский PHP/Symfony2 разработчик.

33. Jeremy Mikola. Большую часть времени работает над PHP-драйвером к MongoDB и Doctrine MongoDB ODM.

Создатель PHP Расмус Лердорф — об анархии и демократии в разработке языка, PHP 5.6 и жалующихся программистах

Несмотря на то, что прошло уже полтора месяца после IDCEE 2013, новые тексты о ней и по её мотивам всё ещё выходят. Сегодня, например, на DOU.ua опубликовали длинное и развесистое интервью с Расмусом Лердорфом, который создал PHP, но из принципиальных соображений не хочет заниматься им в качестве основной работы. Ниже — несколько интересных цитат и дополнительные видеоматериалы.

Вместо эпиграфа можно использвать парафраз Отто фон Бисмарка из внутриредакционного обсуждения текста: «Колбаса, политика и PHP: если хотите наслаждаться ими — не смотрите, как они делаются».



PHP — просто инструмент, с помощью которого можно сколотить классные штуки. И мне нравится именно это — то, что создано с помощью PHP. Я никогда не работал в компании, производящей инструменты; много лет я проработал в Yahoo, потом в WePay, сейчас — в Etsy. Это компании, которые работают для нормальных, обычных людей, и PHP — их неотъемлемая часть. Это инструмент, которым мы пользуемся, чтобы делать вещи для реальных людей.

А компании, которые делают инструменты, работают не для людей, а для программистов — как Mongo, как MySQL и т.п. Если выйти на улицу и спросить обычных людей, слышали ли они о Mongo или MySQL, никто не ответит утвердительно. И про PHP никто из них не слышал, и это хорошо.

С другой стороны, если выйти на улицу и спросить людей, слышали ли они о Facebook, что они ответят? Все скажут, что слышали. Меня интересуют именно такие продукты, я хочу делать вещи для реальных людей. Вы спрашиваете, почему я не хочу основать компанию для разработки PHP? Он не касается реальных людей, только придурков типа меня; к тому же делать что-то для программистов — очень раздражающее занятие.

— Означает ли это, что в какой-то момент вы забросите PHP или станете уделять ему меньше времени?

— Единственная причина существования PHP состоит в том, что это инструмент для создания продуктов для реальных людей. И мне нужен этот инструмент, без него я не могу этого делать; это же относится и ко многим компаниям. Мне нравится заниматься PHP, но мне нужно видеть эффект для реальных людей: если я его не вижу, мне нет смысла продолжать это делать.


— Из-за того, что все наши программисты — добровольцы, и занимаются тем, что им нравится, недостаточно людей работают над такими вещами, как надежность и защищённость, где нужно обрабатывать баг-репорты и находить редкие случаи, в которых без видимых причин выпадает segfault. Обычно это очень странные случаи, и разобраться в них очень непросто.

Главная причина сложности — то, что баг-репорты обычно написаны плохо. Они не объясняют поледовательность действий, там просто написано «Всё сломалось», и приходится долго задавать наводящие вопросы, чтобы понять, что же именно случилось. Это огромное количество работы, особенно когда на другом конце — человек, не очень хорошо объясняющий баги; а надо сказать, что, в общем, никто не объясняет баги хорошо. Одна такая задача может занять три дня.

Поскольку разработка новых возможностей движется довольно быстро — скажем, временной разрыв между PHP 5.4 и 5.5 был небольшим, плюс в PHP 5.6 тоже будет много новых фич, — я переживаю за надежность всех этих нововведений. Проверка всех «крайних случаев» с их использованием занимает некоторое время, и часто разработчики стремятся скорее двигаться дальше, к новым задачам.


Одно из предложений для PHP 5.6 — сделать то же самое для шифрования. При создании SSL-соединения нужно проверять сертификат второй стороны и то, что вы используете актуальную базу сертификатов. Это несложно сделать, но многие разработчики этим не заморачиваются. Потом они переиспользуют тот же самый код на других проектах, и оказывается, что они уязвимы к атакам типа «незаконный посредник» (man-in-the-middle). Так что в PHP 5.6 вся эта работа с шифрованием может быть встроена по умолчанию.

— А кто принимает окончательное решение [по нововведениям в PHP]? Вы?

— Нет. Решение принимаем мы все, я отказываюсь становиться узким местом в этом процессе.

— То есть, в PHP демократия?

— Да, мы голосуем за предложенные возможности. Иногда, правда, случается, что большинство голосует «за», но впоследствии оказывается, что внедрение невозможно по техническим причинам. Но 95% одобренных фич попадают в проект.

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

— Я думаю, в большинстве случаев всё же есть один человек, который принимает окончательные решения, и задача остальных — убедить этого человека. Так же происходит, например с Linux: если Линус Торвальдс говорит «нет», то это обжалованию не подлежит. Это тоже нормально, но для меня PHP — не основная работа, к тому же мне не нравится принимать решения такго уровня.

PHP — очень широкий проект с поддержкой самых разных вещей, и совершенно не факт, что я разбираюсь в них всех. Например, я не понимаю Sybase, я никогда им не пользовался, и когда один человек предлагает сделать что-то в этой области, а трое других говорят «нет», мы этого не делаем. Эти ребята разбираются в Sybase, а я не хочу вмешиваться, у меня нет необходимых знаний.

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


— Я терпеть не могу летать, мне не очень нравятся переезды, но места, где я бываю, всегда интересны. Мне нравится узнавать, что нужно реальным пользователям, а не слушать жалобы разработчиков на всякую фигню снова и снова.

Я обожаю слушать пользователей, особенно на User Groups и конференциях. Они говорят о том, как PHP помог им решить какие-то задачи — или, наоборот, не смог помочь по каким-то определенным причинам. Иногда они рассказывают, как PHP изменил их жизнь, или как изменилась жизнь людей где-то в маленьком городке в Южной Америке благодаря написанному на этом языке проекту.

Дополнительные материалы

Небольшое видеоинтервью:

Доклад Расмуса Лердорфа о производительности и возможностях PHP 5.4 и 5.5:

PHP: История PHP — Manual

История PHP

PHP Tools, FI, Construction Kit и PHP/FI

PHP, как всем известно, на самом деле преемник продукта под названием PHP/FI. Созданное в 1994 году Расмусом Лердорфом, самое первое воплощение PHP было простым набором CGI-скриптов, написанных на языке программирования Си. Изначально используя их для отслеживания посещений своего веб-резюме, он назвал этот набор скриптов «Personal Homepages Tools» («Инструменты для персональных домашних страниц»), но более часто упоминалось название «PHP Tools». Со временем требовалось все больше улучшений функциональности, и Расмус переписал PHP Tools, создав более крупную и богатую реализацию. Эта новая реализация была способна взаимодействовать с базами данных и многое другое, что создавало фреймворк, с помощью которого пользователи могли создавать простые динамические веб-приложения, такие как гостевые книги. В июне 1995 года Расмус » открыл исходный код PHP Tools общественности, что позволило разработчикам использовать его по своему усмотрению. Это также дало возможность пользователям исправлять ошибки в коде и улучшать его.

В сентябре того же года, Расмус расширил PHP и на короткое время убрал из названия PHP. Теперь в виде инструмента FI (сокращение от «Интерпретатор Форм»), новая реализация включала в себя некоторые основные функциональные возможности того PHP, который мы знаем сегодня. Она имела Perl-подобные переменные, автоматическую интерпретацию форм и встраиваемый в HTML синтаксис. Синтаксис языка был похож на Perl, хотя и был гораздо более ограниченным, простым, и в некоторой степени противоречивым. Для того, чтобы вставлять код в HTML-файл, разработчикам пришлось использовать HTML комментарии. Хотя этот метод был не совсем хорошо принят, FI по-прежнему набирал популярность в качестве CGI-инструмента, но все-таки не в качестве языка. Однако, перемены начались в следующем месяце, когда в октябре 1995 года Расмус выпустил полностью переписанный код. С вернувшимся именем PHP, но уже сокращенным от «Personal Home Page Construction Kit», это был первый релиз, который мог похвастаться расширенным интерфейсом сценариев. Язык намеренно напоминал Си по структуре, что делал его легким для восприятия разработчиками, знакомыми с Си, Perl и подобными языками. Будучи все еще ограниченными UNIX и POSIX-совместимыми системами, был изучен вопрос для реализации языка в Windows NT.

Код получил еще одно существенное преобразование в апреле 1996 года. Объединив названия предыдущих версий, Расмус представил PHP/FI. Реализации второго поколения начали по-настоящему развивать PHP из набора инструментов в самостоятельный язык программирования. PHP включал в себя встроенную поддержку для DBM, mSQL и Postgres95 баз данных, cookies, поддержку определяемых пользователем функций и многое другое. В июне PHP/FI была присвоена версия 2.0. Интересно, однако, что существовала только одна версия PHP 2.0. Когда она, наконец, в ноябре 1997 года преодолела статус бета-версии, парсер языка был уже полностью переписан.

Несмотря на короткую историю разработки, PHP/FI продолжал набирать популярность в молодом мире веб-разработки. В 1997 и 1998, PHP/FI стал культом для нескольких тысяч пользователей по всему миру. Исследования Netcraft в мае 1998 года показали, что почти 60 тысяч доменов передавали заголовки, содержащие «PHP». Это число равнялось примерно 1% от всех доменов в Интернете в то время. Несмотря на эти впечатляющие цифры, развитие PHP/FI было ограничено: несмотря на нескольких второстепенных участников, в целом он по-прежнему разрабaтывался одним человеком.

Пример #1 Пример кода на PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Эй, у вас Нетскейп!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Извините, такой записи нет<p>
<!--endif exit-->
  Добро пожаловать, <!--$user-->!<p>
  На вашем счету осталось <!--$index:0--> "кредитов".<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 был первой версией, напоминающей PHP, каким мы знаем его сегодня. Посчитав PHP/FI 2.0 все еще неэффективным и недостаточно функциональным для использования в коммерческих приложениях, разрабатываемых для их университетского проекта, Энди Гутманс и Зив Сураски из Тель-Авива начали еще раз заново переписывать парсер в 1997 году. Связавшись с Расмусом, они обсудили различные аспекты текущей реализации и их новой разработки PHP. Для улучшения движка и использования уже существующей базы пользователей PHP/FI, Энди, Расмус и Зив решили сотрудничать в развитии нового, независимого языка программирования. Этот совершенно новый язык был выпущен под новым именем, без упоминания о персональном использовании, как в PHP/FI 2.0. Он был назван просто «PHP» — аббревиатура, означающая рекурсивный акроним — PHP: Hypertext Preprocessor.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. Кроме обеспечения пользователей надежной инфраструктурой из множества различных баз данных, протоколов и API, расширяемость PHP 3.0 привлекла к нему множество сторонних разработчиков, желающих добавить к языку свои модули. Возможно, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась поддержка ООП синтаксиса и намного более мощного и последовательного синтаксиса самого языка.

В июне 1998 года, со множеством новых разработчиков со всего мира присоединившихся к проекту, PHP 3.0 был представлен новой командой разработчиков, как официальный преемник PHP/FI. Активное развитие PHP/FI 2.0, фактически прекратившееся в ноябре прошлого года, теперь официально закончилось. Примерно через девять месяцев открытого публичного тестирования, при объявлении официального выпуска PHP 3.0, он уже был установлен на более чем 70000 доменах по всему миру, и уже не ограничивается POSIX-совместимыми операционными системами. Относительно небольшая доля доменов с установленным PHP была размещена на серверах под управлением Windows 95, 98 и NT, а также Macintosh. На пике своего развития, PHP 3.0 был установлен приблизительно на 10% веб-серверов в Интернете.

PHP 4

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности кодовой базы PHP. PHP 3.0 дал возможность подобным приложениям успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно.

Новый движок, названный ‘Zend Engine’ (от имен создателей: Zeev и Andi), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принесший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника. Кроме значительного улучшения производительности, PHP 4.0 имел еще несколько ключевых нововведений, таких как поддержка намного большего числа веб-серверов, поддержка HTTP сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

PHP 5

После долгой разработки и нескольких пре-релизов в июле 2004 был выпущен PHP 5. В основном он управляется ядром Zend Engine 2.0 с новой объектной моделью и множеством различных других нововведений.

Команда разработчиков PHP включает в себя десятки разработчиков, а также десятки других организаций, работающих над связанными с PHP и его поддержкой проектами, такими как PEAR, PECL и документацией, а также базовую инфраструктуру сети более чем из ста серверов на шести из семи континентах мира. Основываясь на статистике прошлых лет, можно с уверенностью предположить, что PHP теперь установлен на десятки или даже, возможно, сотни миллионов доменов по всему миру.

Upgrade до Middle PHP-разработчика за 3 месяца / Habr

В очередной раз на меня свалилась задача найти хорошего PHP-программиста.
По результатам прозвона потенциальных кандидатов, 90% тех, кто мнит себя Middle, на самом деле Junior и годы опыта не спасают, потому что клепают однотипный код в пределах заданий, посланных свыше.
Прописал минимальный план желающим сделать рывок и перейти на следующий уровень без отрыва от производства.



Месяц 1

Прочитать книжки (по неделе на книжку, читая вечерами и на выходных):


  1. PHP+MySQL — ozon.ru
  2. ООП и паттерны — ozon.ru
  3. Совершенный код — ozon.ru
  4. Symfony 3 — на английском, частичный перевод на русский

Можно заменить на аналогичные, почти всё можно скачать без смс.

Предвидя холивар «почему Symfony»: можете выбрать Yii или Laravel — они проще в изучении. Symfony иногда неоправданно сложный, но интересен в плане изучения концепций. Зная его, другой фреймворк потом будет понять элементарно. И даже если вы не будете использовать его полностью, можно брать отдельные компоненты (список пострадавших), которые как паттерны, могут быть знакомы вашим коллегам.
Хотя если у вас неподалёку есть старший товарищ, который хорошо знает другой фреймворк, можно выбрать его.

Месяц 2

Прочитать по 3-5 статей и на практике поработать с (1 вечер — статьи, 1 вечер — практика):


  1. PSR: PSR-1, PSR-2, PSR-4, Symfony Code Standards
  2. Bash — Основы, в примерах — 1, 2
  3. nginx+PHP5-FPM — установка, Nginx изнутри, Тюнинг nginx
  4. Mercurial (1, 2, 3, 4, 5, 6) или Git (интерактивный тур, Workflow, книжка)
  5. PHPUnit — основы, перевод 8 глав документации
  6. PHPStorm — Quick Start, видео-уроки
  7. Vagrant — документация, в PhpStorm
  8. Twitter Bootstrap — сайт
  9. Twig — небольшая книжка
  10. Composer — основы, свой vendor

Месяц 3

Сделать свой проект на GitHub, используя всё вышеперечисленное (1 месяц вечерами и на выходных).
Цель: закрепить знания, пройдя самому весь путь от ТЗ до готового проекта, на который можно зайти в Интернете и давать ссылку в резюме.

Рекомендации:

  1. минимум фич, забыть слова «универсальное решение»/»платформа»/»плагины», иначе надоест быстрее, чем доделате
  2. не использовать готовые движки вроде WordPress/Joomla/Magento, но использовать фреймворк, чтобы не велосипедить
  3. не обращать внимания на вёрстку — только Twitter Bootstrap
  4. ответы на вопросы — Google и StackOverflow, не пытайтесь долго думать сами, полезнее научиться правильно формулировать вопрос

Идеи проектов:

  1. блог
  2. интернет-магазин
  3. форум
  4. сайт прогноза погоды
  5. сайт с актуальными курсами валют
  6. ваш вариант

Бонус:

  1. Записаться на курсы английского (кроме хабра, все интересные статьи и документация к библиотекам — на английском). Вот есть даже специализированное Skype-обучение для IT-шников, хотя я — за классические групповые занятия.
  2. Научиться набирать вслепую (2 недели по вечерам)
  3. Выучить на память TOP100-300 функций PHP (1 неделя)
  4. Изучить еще один язык программирования на уровне написания простеньких приложений. Желательно совсем другой парадигмы: Go (отличная обучалка), Lisp (аргументация — 1, 2), Haskell (как-то так)

Удачи!

«Ненавижу программирование. Но я люблю решать проблемы» / Edison corporate blog / Habr

Сегодня день рождения создателя PHP, Расмуса Лердорфа (дат. Rasmus Lerdorf). Хочу представить вашему вниманию несколько фактов из его биографии и парочку цитат, чтобы понять ход мысли и мировоззрение этого «программиста».

В 1994 году Расмус запилил набор скриптов на Perl/CGI, обрабатывающих шаблоны HTML-документов, позже воплотившийся в интерпретатор языка программирования PHP, с помощью которого можно было решать различные задачи веб-приложений.

«Тот PHP который мы знаем сейчас — совсем не то, что я сделал в самом начале. Десятки, если не сотни людей принимали участие в разработке. Я был просто первым разработчиком.»

«PHP как зубная щетка. Вы пользуетесь ей каждый день, она выполняет свою работу, простой инструмент. Что вы хотите знать про зубные щетки?»

Ещё в университете, Лердорф разрабатывал графические интерфейсы для всяких корпораций. После окончания учёбы нанялся в компанию Nutec Informática, прогал под UNIX/DOS и участвовал в разработке интерфейса Nutec Desktop. В 1994-м году Лердорф создал графический интерфейс для Toronto Internet Service Provider. В том же году, Расмус создал собственную компанию Lerdorf Consultants Inc.

«Я очень очень плохо писал парсеры. Я до сих пор хреново пишу парсеры.»

«Есть люди, которые любят программировать. Я их не понимаю.»

«Я не настоящий программист. Я просто соединил вместе вещи, которые работали. Настоящий программист бы сказал: „Это работает, но тут утечки памяти на каждом шаге. Нужно пофиксить.“ А я вот просто перезагружаю Apache через каждые 10 запросов.»

В 1994 в сети появился скрипт, написанный Лердорфом и названный «PHP-Tools for Personal Home Page», который собирал статистику о посещении веб-страницы. Именно его можно считать началом зарождения PHP. Скрипт имел открытый код и Расмус Лердорф собирал отзывы пользователей, обрабатывал комментарии и ошибки, расширяя и улучшая собственную разработку.


«Я не знаю как остановиться, я никогда не ставил целью написать язык программирования. Я просто делал следующий шаг исходя из логики.»

«Для тех кто записывает мои цитаты: Я ужасный кодер, но скорее всего лучше чем вы:)»

«Я никогда не считал PHP чем то большим, чем просто инструментом для решения задач.»

С 2002-го года и до 2009-го Лердорф работал в Yahoo! Inc. Будучи ярым приверженцем open source, Лердорф держит связь со многими программистами PHP, с каждым днём улучшая и модифицируя собственное детище. Он также является автором более пятнадцати книг по языку PHP.


«PHP очень редко является самым слабым звеном.»

«Уродливые проблемы часто требуют уродливых решений. Решать уродливую проблему изящно — чертовски трудно.»

«PHP — это молоток. Никто не разбогател на производстве молотков.»


Расмус разговаривает о безопасности с разработчиками Joomla в 2007.
По словам Ледорфа, первая версия PHP была написана буквально за день в промежутках между деловыми встречами.

Расмус активно выступает на open source конференциях и консультирует стартапы.

С днем рождения, Расмус Ледорф!

Поддержка публикации — компания Edison, которая разрабатывает оповещалку для трейдеров, а так же делает систему учета энергоресурсов и водоснабжения для коттеджного поселка.

Что и в каком объеме нужно знать php программисту / Habr

Хочу сразу оговориться данная статья что отображает мое собственное мнение по этому вопросу основанное на личном опыте и не претендует на абсолютную точность. Написана она для тех, кто или только задумывается на карьерой php программиста или думает что бы изучить дальше.

Ниже я постараюсь изложить свою точку зрения на тот перечень языков, ПО и технологий, которые нужно знать php программисту, что бы претендовать на хорошо оплачиваемую работу. Оговорюсь сразу что я не буду давать ссылок ни на какие учебные материалы, не буду приводить сроков, которые понадобятся для изучения, а так же не смогу даже приблизительно предположить на какую ЗП вы сможете рассчитывать освоив тот или иной перечень.

Ядро

Ну тут само по себе понятно что, если планируешь стать PHP программистом то PHP как раз то что нужно знать и как можно лучше. Касательно версии PHP, которую стоит изучать — думаю что на данный момент нету смысла начинать с версии ниже PHP 5.0, вряд ли вы найдете где-то вакансию где нужно будет работать на версии ниже этой.
Что касается глубины знаний по этому языку, то чем они будут глубже и объемнее тем соответственно лучше, т.к. это ваш основной рабочий инструмент. О том что конкретно изучать и в какой последовательности вы сможете легко найти информацию в Интернете скажу только что обязательно нужно изучить реализацию ООП, т.к. основная масса фреймворков и CMS написаны с использованием этой парадигмы. Так же полезным будет почитать про шаблоны проектирования, в частности про MVC.

Хранилище данных

Вряд ли зная только один язык PHP вы сможете найти достойную работу. Основная масса вакансий требует от программиста знания и умения работать с одним из распространенных хранилищем данных. На данный момент выбор различного ПО для хранения данных довольно велик хотя на мой взгляд для php программиста была и пока остается самой востребованной СУБД MySQL. Я не в коей мере не пытаюсь занизить достоинства других СУБД, но в основной массе вакансий фигурирует именно MySQL.
Что касается версии, то опять же стоит изучать MySQl с версии 5.0 и выше.
По данной теме в Интернете так же можно найти множество информации для изучения, от себя хочу акцентировать внимание только на необходимости изучения способов оптимизации как самой структуры базы данных, так и запросов к ее таблицам.

HTML + CSS

Базовые знания в данных вещах в любом случае понадобятся php программисту. Пусть php и является серверным языком, но он в основном и связан с генерацией HTML страничек с CSS стилями, так что базовые знания все же нужны.

JavaScript

Казалось бы что этот клиентский язык программирования уж точно выходит за область обязательных знаний php программиста, но опять же рынок диктует совсем противоположное. В различных вакансиях, которые мне доводилось встречать уровень знаний в этом языке разнится, но практически во всех он обязателен.
Что бы лично от себя я порекомендовал — после того как ознакомитесь с основным синтаксисом этого языка переходите сразу к изучению одного из распространенных фреймворков, я бы посоветовал выбрать между JQuery и ExtJS. В основном в вакансиях фигурируют именно эти два фреймворка.

ОС

Это опять же мое личное мнение, которое основано на опыте и на логике. Т.к. основная масса серверов для хостинга сайтов написанных на php работают под управлением *nix (Linux или Unix) то соответственно лучше бы знать эту операционную систему. Лично я уже давно на рабочем компьютере устанавливаю Linux Ubuntu. На данный момент в этом дистрибутиве все сделано таким образом, что установка и настройка LAMP не вызывает совершенно никаких трудностей.
После того как вы установите и настроите у себя на компьютере LAMP советую изучить основные команды для работы в командной строке: работа с пользователями и группами пользователей *nix, работа с файлами и каталогами, работа с редакторами vi, vim, работа в файловом менеджере Midnight Commander, работа с демоном-планировщиком cron.

Веб-сервер

Думаю что не ошибусь, если скажу что на данный момент Apache все же остается самым распространенным веб-сервером. Мне кажется что начать легче всего именно с него. Хотя и изучать особо углубленно его тонкую настройку все же нет смысла, т.к. по производительности лучшим выбором будет связка Ngix + php-fpm.

Дополнительно

Ниже приведен перечень того, на что бы я еще порекомендовал обратить внимание для серьезного php (и не только) программиста:
1. PHP фреймворки — на данный момент очень редко в вакансиях не указывается знание одного или нескольких PHP фреймворков. В основном востребованы следующие: ZendFramework, Yii, Code Igniter, Symfony и Kohana. Мне больше всего нравится Yii.

2. ПО для кеширования данных, например: Memcached, Redis и т.д.

3. ПО для кеширования байткода php скриптов, например: eAccelerator, XCache и т.д.

4. NoSQL базы данных, например: MongoDB, CouchDB, Redis и т.д.

5. Английский язык, как минимум в достаточной мере что бы читать англоязычную документацию без словаря.

Дополнительно для работы в команде

Важные вещи для успешной работы в команде:

1. Coding Standards — очень важная вещь. В общем понимании это правильное и удобное для чтения оформление вашего кода.

2. Удобный и правильно настроенный редактор. По поводу правильных настроек лично я имею ввиду только правильною кодировку файлов и отступы в виде табуляции.

3. Умение работать с одной из распространенных систем контроля версий. Например: svn или git.

4. Опыт работы с каким-нибудь ПО для организации работы команды для постановки задач/ошибок, отслеживания потраченного времени и т.д. так же будет плюсом. Обычно такое ПО называется project management, в качестве примера можно привести Jira.

Дополнительно для работы в режиме фриланса

1. Если предполагается работать одному, то тут вам уже не обойтись без хотя бы базового знания графических программ, таких как Photoshop. Так же нужны будут боле углубленные знания по HTML + CSS, для того, что бы вы смогли делать кросбраузерную верстку.

2. Основная масса заказов скорее всего будет состоять в исправлении или добавлении функционала распространенных CMS, таких как: wordpress, Joomla, Drupal, DLE или Bitrix. Если ориентироваться на мелкие и средние заказы, то вам вряд ли понадобится знание какого-то из перечисленных выше фреймворков.

Заключение

Ну вот вроде и все что я хотел сказать по данной теме. Надеюсь что статья окажется полезной. Спасибо за внимание.

10 правил PHP-мастеров

принципы

От Автора:

PHP так широко распространен и общепринят, что уже стало слишком легко найти скрипт или фрагмент, выполняющий в точности то, что вам нужно. К несчастью, не существует фильтра, который определяет, что является “хорошей практикой”, а что, ну… не так уж хорошо при написании PHP-скрипта. Нам нужны заслуживающие доверия источники, которые доказали, что дают твердые знания о лучших практиках PHP.

Нам нужны PHP-мастера, чтобы показать наилучшие правила высококлассного программирования в PHP.

1. Пользуйтесь PHP только тогда, когда это нужно – Расмус Лердорф (Rasmus Lerdorf)

Нет лучшего источника, чем сам создатель PHP, чтобы узнать, на что он способен. Расмус Лердорф создал PHP в 1995г. С тех пор язык распространился со сверхъестественной скоростью в сообществе разработчиков, попутно изменяя лицо Интернета. Однако Расмус создавал PHP не с этими намерениями. PHP создавался для потребностей веб-разработки.


Как и в случае со многими другими проектами с открытым исходным кодом, ставшими популярными, философия или даже самовлюбленность никогда не были движущей силой. Это был чистейший случай нужды в инструменте для решения глобальных проблем, связанных с Сетью. В 1994г., когда речь заходила об инструментах разработки Сети, выбор был весьма ограничен.

принципы

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

И все же вы не можете воспользоваться PHP для всего на свете. Лердорф первым отметил, что PHP в действительности просто еще один инструмент в арсенале разработчика, и даже у PHP есть ограничения.


Для работы пользуйтесь правильным инструментом. Я встречал компании, которые всецело уповали на PHP, употребляя его абсолютно везде, хотя он никогда не предназначался для того, чтобы быть языком общего назначения, подходящим для любой проблемы. Он наиболее приемлем как внешний скриптовый язык для Web.


Попытка использования PHP для чего угодно непродуктивна, и, несомненно, это не лучший способ использования вашего времени как веб-девелопера. Не бойтесь применять другие языки, если PHP для вашего проекта не подходит.

php принципы

2. Используйте множество таблиц в PHP и mySQL для масштабируемости – Мэтт Малленвег (Matt Mullenweg)

Нет нужды сомневаться в компетентности Мэтта Малленвега в PHP. Он (вместе с сообществом пользователей) разработал самую популярную блоговую систему на свете: WordPress. После создания WordPress’а Мэтт и компания запустили звездный WordPress.com, бесплатный блоговый сайт, основанный на платфоме WordPress MU для нескольких блогов. В данный момент WordPress.com поддерживает более 4 миллионов блогов, а их пользователи сегодня написали более 140 000 постов.

Если кто и знает, как масштабируются вебсайты, то это Мэтт Малленвег. В 2006г. Мэтт предоставил возможность немного рассмотреть внутреннюю структуру баз данных WordPress’а и объяснил, почему в WordPress MU для каждого блога используется отдельная таблица mySQL, вместо применения одной гигантской общей таблицы для всех блогов.


Мы тестировали такой подход для MU, и обнаружили, что масштабирование становится слишком дорогим, начиная с некоторого момента. С монолитными структурами вы упираетесь в стену, построенную из возможностей оборудования. В MU пользователи разграничены и могут быть легко разделены, например, на WordPress.com пользователи распределяются по 4096 базам данных, что позволяет очень легко и рационально масштабировать сотни тысяч и даже миллионы пользователей, обеспечивая экстремально высокий уровень трафика.


Возможность миграции таблиц позволяет коду и, в конечном итоге, блогам гораздо быстрее запускаться и проще масштабироваться. Совместив интенсивное кэширование и элегантное использование баз данных, Мэтт показал, что чрезвычайно популярные сайты вроде Facebook и WordPress.com могут работать только на PHP и обрабатывать невероятное количество трафика.

php принципы

3. Никогда-никогда не доверяйте своим пользователям – Дейв Чайлд (Dave Child)

Дейв Чайлд – выдумщик (хи-хи!), стоящий за недавно переименованным Added Bytes (бывший ilovejackdaniels.com), вебсайтом, который содержал в себе великолепные шпаргалки Дейва для множества языков программирования. Дейв работал на многие компании-разработчики в Великобритании и упрочил свое положение авторитета в мире программирования.

Дейв предлагает мудрый совет по поводу написания безопасного кода в PHP: Не доверяйте своим пользователям. Они могут вас огорчить.


Так что важнейшее правило всей веб-разработки, и я не могу не сделать на нем ударения, это: Никогда не доверяйте своим пользователям. Подразумевайте, что любой отрывок данных, получаемых сайтом от пользователя, содержит злонамеренный код. Всегда. Включая данные, которые как вы считаете, вы проверили на клиентской стороне, используя, например, JavaScript. Если сможете это сделать, окажетесь на верном пути. Если безопасность PHP важна для вас, этот единственный пункт окажется самым важным для изучения.


Дейв продолжает давать особенные примеры осуществления безопасности на практике в частях один, два и три своей серии публикаций ‘Написание безопасного PHP’. А его окончательный вердикт звучит так:


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


php принципы

4. Уделите внимание PHP-кэшированию – Бен Больбо (Ben Balbo)

Бен Больбо писал для Site Point, очень уважаемого сайта-учебника для нашего брата – разработчика и дизайнера. Он состоит в комиссии как Мельбурнской группы пользователей PHP, так и Клуба разработчиков проектов с открытым исходным кодом, так что он кое-что знает о языке. Не удивительно, что опираясь на свое прошлое как разработчика PHP и инструктора, он рекомендует уделить немного больше внимания и подготовки PHP-кэшированию.


Если у вас загруженный и преимущественно статический веб-сайт — такой как блог – которым заведует система управления контентом, кэширование, возможно, потребует небольших переделок, однако позволит получить значительное улучшение производительности, с небольшими затратами вашего времени. Организация кэширования для более сложного сайта, который формирует контент для каждого пользователя, такого как портал или электронный магазин, окажется немного сложнее и потребует времени, но выгода от него очевидна.


В PHP существует множество техник кэширования и Бен затрагивает в статье несколько самых крупных, таких как:

Кэширование вызовов функций

Установка заголовков expiry

Кэширование закачки файлов в IE (Internet Explorer)

Кэширование шаблонов

Cache_Lite

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

php принципы

5. Ускоряйте разработку PHP при помощи IDE, шаблонов и фрагментов – Чед Киффер (Chad Kieffer)

Когда Чед Киффер не занят улучшением пользовательских интерфейсов и управлением базами данных, он дает советы эксперта в своем блоге 2 tablespoons. Из-за своих широких возможностей и профессионального опыта, Чед часто может видеть общую картину, которую другие программисты могут и не разглядеть, особенно когда дело касается целостного подхода, которым пользуется Чед в разработке вебсайтов. Он специалист во всех аспектах процесса разработки, так что любая способность проникать в суть, которой он делится, может оказаться полезной в процессе сборки проекта в одно целое.

Чед считает, что использование IDE вроде Eclipse PDT (пакета для разработки на PHP в Eclipse) со смесью шаблонов и фрагментов действительно может ускорить цикл разработки в проекте.


Переполненные графики, длинные списки необходимых дел и дедлайны усложняют разработчикам задачу ознакомления с некоторыми продвинутыми возможностями, которыми обладают их инструменты. Пусть вам будет за это стыдно, потому что некоторые особенности, такие как шаблоны Eclipse, действительно могут сократить время кодирования и уменьшить ошибки.


Здравый смысл говорит, что каждый раз, когда можно автоматизировать задачу, возможно увидеть проект готовым быстрее. То же верно в отношении теории Дэна. Потратив время на создание шаблонов, которые можно использовать снова и снова, вы сэкономите кучу времени, автоматизировав повторяющиеся части кода.

Используя IDE вроде Eclipse и пакет PDT, вы обнаружите, что время разработки определенно ускорится. IDE будет автоматически закрывать скобки, добавлять недостающие точки с запятыми, и даже позволит вам исправлять неполадки в текстовом редакторе, без необходимости выкладывания на сервер.

(У Чеда есть отличный учебник о начале работы с Eclipse PDT и преимуществах IDE в общем, если интересует.)

php принципы

принципы

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

6. Улучшайте функции фильтрования PHP – Джоуи Сочеки(Joey Sochacki)

Так как Джоуи Сочеки, может быть, не такое великое имя, как Мэтт Малленвег (Matt Mullenweg) в сообществе PHP, он бывалый веб-разработчик и делится с нами советами, почерпнутыми на этом пути, в своем блоге Devolio.

Джоуи обнаружил, что хотя при написании кода PHP должна проводиться куча фильтрации, немногие программисты пользуются функциями фильтрации PHP.


Фильтрация данных. Нам всем приходится это делать. Большинство, если не все из нас, относятся к нему с презрением. Однако неведомыми большинству остаются функции фильтрации PHP, которые позволяют производить всякого рода фильтрацию и проверку правильности (validation). Пользуясь функциями PHP filter_*, можно проверять правильность и «стерилизовать» данные, URL’ы, адреса e-mail, IP-адреса, отсекать недопустимые символы и много другое, сравнительно легко.


Фильтрация может быть запутанной, но это руководство способно очень помочь. С помощью Джоуи вы узнаете, как установить фильтры и просеивать практически все, пользуясь преимуществами возможностей фильтрации предоставляемых PHP.

php принципы

7. Пользуйтесь фреймворком PHP – Джош Шарп (Josh Sharp)

По поводу того, использовать ли фреймворк PHP типа Zend, CakePHP, Code Igniter, или любой другой, спорили всегда. В его использовании есть свои позитивные и негативные аспекты, и многие разработчики имеют собственное мнение о том, идти по этому пути или нет.

Джош Шарп – веб-разработчик, который зарабатывает себе на хлеб с маслом, создавая вебсайты для клиентов. Вот почему вы должны ему верить, когда он говорит, что использование фреймворка PHP — отличный способ сэкономить время и устранить ошибки во время программирования. Почему? Джош считает, оттого, что PHP очень легко выучить.


Но легкость использования PHP также ведет к краху. Из-за меньшего количества ограничений в структуре кода, гораздо легче написать плохой код. Но для этой проблемы есть решение: используйте фреймворк.


Фреймворки PHP помогают стандартизировать то, как вы программируете, и могут сберечь большое количество времени в процессе разработки. О преимуществе использования фреймворка PHP можно прочесть больше в блоге Джоша.

php принципы

8. Не пользуйтесь фреймворком PHP – Расмус Лердорф (Rasmus Lerdorf)

В противоположность мнению Джоша о том, что нужно использовать фреймворк PHP, Расмус Лердорф, сам крестный отец PHP, считает, что фреймворки не так уж хороши. Почему? Потому что они выполняют операции гораздо медленнее, чем простой PHP.

Во время своей презентации на Drupalcon 2008 Расмус сравнил время ответа на PHP-страницу при помощи простого примера “Hello World”, с несколькими фреймворками PHP (слайды 24-32) и показал, что фреймворки PHP гораздо медленнее, чем прямой PHP.

Можете прослушать или просмотреть презентацию целиком, где Расмус демонстрирует потери производительности фреймворков PHP. Вкратце, Расмус показывает, что производительность серьезно страдает, когда вы пользуетесь фреймворком PHP, в противоположность использованию чистого PHP.

php принципы

9. Используйте пакетную обработку данных – Джек Д. Херрингтон (Jack D. Herrington)

Джек Херрингтон знаком с PHP и сферой разработки. Вслед за написанием более 30 статей для престижного IBM developerWorks, Джек также опубликовал книги по программированию, такие как «PHP Hacks». Джек – подлинный знаток.

Херрингтон рекомендует использовать пакетную обработку данных и cron (прим. перев. – планировщик задач), для сложных задач, которые могут обрабатываться в фоновом режиме. Пользователи сети не желают долго ожидать завершения заданий через веб-интерфейс. Работа, которая занимает много времени, больше подходит для выполнения в фоновом режиме.


Естественно, в ряде случаев немного легче запустить вспомогательный поток для обработки небольших задач. Но легко заметить, что при использовании традиционных инструментов – cron, MySQL, стандартный объектно-ориентированный PHP и Pear::DB – пакетные задания в приложениях PHP просто создавать, легко развертывать и несложно сопровождать.


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


Я пробовал все и считаю, что крон имеет преимущество принципа “Keep It Simple, Stupid” (KISS) («Делай все просто, придурок»). Он делает фоновую обработку простой. Вместо многопоточного приложения обработки задач, которое выполняется постоянно и, таким образом, не должно иметь утечек памяти, у вас есть простой скрипт пакетной обработки данных, который запускает крон. Скрипт определяет, есть ли что-то, что нужно сделать, делает это и затем завершает работу. Не нужно волноваться об утечках памяти. Не нужно волноваться о «захлебывании» (stalling) потоков или возможности попадания в бесконечный цикл.


php принципы

10. Немедленно включите оповещения об ошибках – Дэвид Каммингс (David Cummings)

Дэвид Каммингс управляет собственной софтовой компанией, которая специализируется на системах управления контентом и выиграла несколько премий. Если кто и знает, как рационально разработать приложение PHP, так это Дэйв.

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


Единственная самая важная вещь, о которой я говорю людям, использующим PHP, это включить оповещения об ошибках на максимальный уровень. Почему я хотел бы это сделать? Как правило, оповещение об ошибках установлено на уровень, который скрывает множество мелочей, таких как:

Преждевременное объявление переменной.

Обращение к переменной, недоступной в этом сегменте кода, или

Использование определения, которое не было установлено

Эти факторы могли бы не показаться такими уж важными – до тех пор, пока вы разрабатываете структурированные или объектно-ориентированные программы с функциями и классами. Слишком часто написание кода без оповещения об ошибках, включенного на максимальный уровень, будет стоить вам часов отладки длинных функций, которые не работают оттого, что переменная написана с орфографической ошибкой или недоступна.

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

php принципы

Автор: Glen Stansberry

Перевод и редакция: Рог Виктор и Андрей Бернацкий. Команда webformyself.

Источник: http://net.tutsplus.com

E-mail: [email protected]

Проект webformyself.com — Как создать свой сайт. Основы самостоятельного сайтостроения

P.S. Хотите опубликовать интересный тематический материал и заработать? Если ответ «Да», то жмите сюда.

принципы

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас! php принципы

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Смотреть

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *