Статьи

Подкаст SitePoint # 159: Мастер PHP с Тимоти Борончиком

Эпизод 159 подкаста SitePoint теперь доступен! На этой неделе наш постоянный интервьюер Луи Симоно ( @rssaddict ) берет интервью у Тима Борончика ( @zaemis ), управляющего редактора phpmaster.com, о новых функциях в PHP5.4, сильных и слабых сторонах PHP, а также подходе DIY в сообществе PHP.

Скачать этот эпизод

Вы можете скачать этот эпизод в виде отдельного файла MP3. Вот ссылка:

  • Подкаст SitePoint № 159: Мастер PHP с Тимом Борончиком (MP3, 20:27, 19,6 МБ)

Резюме Эпизода

Луи и Тим Борончик рассказывают о запуске phpmaster.com , о новых функциях в PHP5.4, в том числе о особенностях и индикаторе прогресса загрузки сеанса, сильных и слабых сторонах PHP, включая исчерпывающее сообщение в блоге, недавно сделанное по этой теме, и подходе «сделай сам» сообщества PHP.

Просмотрите полный список ссылок, указанных в шоу, по адресу http://delicious.com/sitepointpodcast/159 .

Стенограмма интервью

Луи: Здравствуйте, и добро пожаловать в еще один эпизод подкаста SitePoint. На этой неделе у нас есть небольшая часть интервью, в которой участвуют Тимоти Борончик или Тим, я тебя называю Тимом?

Тим: Ты можешь звать меня Тим, Тим в порядке.

Луи: Хорошо, поехали с Тимом. Тим Борончик (Tim Boronczyk) — главный редактор phpmaster.com, одного из последних проектов SitePoint, так что это блог, посвященный удивительному миру PHP. Итак, привет, Тим, и добро пожаловать на шоу.

Тим: Привет, спасибо, что приняли меня, это здорово.

Луи: Здорово иметь тебя. Управляете ли вы PHP Master с самого начала или почти с самого начала?

Тим: Да, с самого начала, наверное, я хочу сказать о восьми, шести, семи, восьми месяцах примерно.

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

Тим: Ну, это всего понемногу, мы публикуем три раза в неделю по понедельникам, средам и пятницам, так что запустите ваши читатели RSS, если вы этого еще не сделали. Мы стараемся иметь всего понемногу для всех. У нас есть несколько статей для начинающих, чтобы помочь начинающим программистам улучшить свои навыки и стать мастером PHP, у нас есть некоторые промежуточные знания для тех, кто провел свое время в сфере обучения PHP и стремятся улучшить свои навыки, и у нас есть некоторые действительно в глубокие подробные статьи для тех, кто уже считает себя мастерами PHP.

Луи: Точно. Так что я подумал, учитывая, что у меня был шанс пригласить вас на шоу, и мы могли бы немного поговорить о PHP в целом, где он находится и куда он движется, поэтому, прежде всего, последняя версия PHP — это версия 5.4 и это относительно новый релиз, верно?

Тим: Да, это, вероятно, через пару месяцев.

Луи: Я только поверхностно знал о PHP в версии 5.4, я немного работаю с PHP, но в основном с Ruby и Rails, так что, может быть, вы можете немного рассказать о том, какие действительно крутые функции есть в PHP 5.4.

Тим: В 5.4 есть много новых функций, которыми вы можете быть восхищены, для меня, вероятно, есть три или четыре, которые я лично считаю довольно аккуратными, первая из которых — индикатор прогресса загрузки сеанса; разработчики PHP вставили информацию в сеанс, пока вы выполняете загрузку файла, чтобы вам не приходилось делать какие-то странные, хакерские, флеш, странные вещи — просто грязный код; Вы можете отправить свою форму, чтобы опубликовать свой файл на сервере и запустить Ajax-запрос за кулисами, который будет просто использовать переменные сеанса для отслеживания хода выполнения, объема файла, который был передан для вас.

Луи: Хорошо, так что это просто облегчает показ пользователю действительного индикатора прогресса, показывающего, как далеко они загружают этот файл?

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

Луи: Да.

Тим: Еще одна черта; если вы большой программист ООП, и черты интересны, вы, возможно, знакомы с ними, я думаю, что они есть и в Ruby, это наборы функций, которые вы бы использовали в классе, но они не в классе они просто сидят в стороне, и вы можете импортировать этот набор функций в класс, чтобы облегчить повторное использование кода, у вас нет странных запутанных иерархий классов, пытающихся не повторять ваш код.

Луи: Да, это действительно то, что действительно, действительно полезно в Ruby — это возможность смешивать небольшие фрагменты функциональности, которые не обязательно вписываются в иерархию наследования; Мне не нужно, чтобы все происходило от потомка этого мастер-класса, чтобы иметь эту функциональность, я могу просто поместить ее в маленький модуль, в Ruby они называются модулями, и извлекать его, когда мне это нужно где мне это нужно, так что приятно видеть такую ​​функциональность и в PHP.

Тим: Да, это точно. Кроме того, у нас есть встроенный веб-сервер в версии 5.4, который некоторые люди действительно взволнованы, и им это нравится, или им это безразлично, но я думаю, что это круто, приятно иметь.

Луи: Так это в основном только для развития; если я просто играю с некоторыми сценариями PHP на своем локальном компьютере, я могу перейти в командную строку и запустить этот маленький сервер разработки, который может обслуживать эти файлы, без необходимости устанавливать Apache с MOD PHP и выполнять все настройки ,

Тим: Да, это действительно облегчает начинающим освоение PHP, не беспокоясь о настройке сервера Apache или Nginex. И теперь, когда у вас есть SQLite как часть PHP начиная с версии 5.0, я думаю, вам действительно не нужен MySQL; Если вы делаете простое базовое веб-приложение, вы можете встроить все в PHP сейчас, просто запустите встроенный сервер и все готово. Однако некоторые из них обеспокоены тем, что это был ответ сообществу Ruby, потому что этот встроенный сервер, по-видимому, хорош только для локального тестирования, я еще не видел, чтобы кто-нибудь делал с ним что-то действительно классное, я уверен, что кто-то будет; Я просто не видел этого. Но критика заключается в том, что PHP и MySQL и Apache настолько плодотворны, что у всех это уже установлено в их хостинге; зачем нужен встроенный сервер для тестирования, который не соответствует конфигурации, которую вы бы использовали при развертывании.

Луи: Да. Я имею в виду, я думаю, что это правильный момент, когда вы говорите, что это похоже на то, что оно было заимствовано, по крайней мере, из Rails, потому что Rails имеет очень похожий способ просто запустить небольшой сервер для тестирования, но в Rails это почти требование потому что существует гораздо больше барьеров для создания реальной среды тестирования, потому что настройка сервера не так проста, как установка нескольких приложений; в случае PHP, если у вас есть MySQL и Apace, он в значительной степени настраивается.

Тим: И это правда, и я думаю, что это связано с движущей силой самого языка, PHP действительно родился как веб-язык, поэтому он был тесно интегрирован в Apache с самого начала. Все ваши переменные post и Git представлены в языке как функциональные возможности, и, как я только что говорил о проверке сеансового ключа для контроля за передачей файлов, опять же, это встроено в язык, если у вас есть язык программирования общего назначения, такой как Python, Perl и Ruby, у вас должны быть фреймворки, которые обеспечивают сетевое взаимодействие, прием входных данных и сброс выходных данных.

Луи: Да. Во всяком случае, я имею в виду, я думаю, что это определенно забавная мелочь, и особенно когда потенциальные люди переходят к развертыванию PHP в среде, отличной от Apache, вы упомянули Nginx, который, возможно, немного сложнее настроить, я вижу, как это будет Ценно иметь возможность просто запускать очень быстрый и грязный сервер разработки, чтобы я мог поиграть с вашими сценариями, а затем беспокоиться о их развертывании после того, как вы их разработали.

Тим: И я думаю, что мой личный фаворит — новый синтаксис коротких массивов. Я видел несколько лет назад, когда кто-то впервые предложил его в список внутренних органов, затем за него проголосовали «за» и «против» и все вокруг, и я рад, что он наконец-то превратился в 5.4.

Луи: Точно. Так что это в основном PHP всегда имел такой уникальный способ объявления массивов, где, если вы хотите присвоить новый массив переменной, вы используете ключевое слово array с круглыми скобками, а затем содержимое массива внутри скобок.

Тим: Да, просто приятно иметь возможность набирать открытую квадратную скобку и закрывать квадратную скобку и называть это днем.

Луи: Да, так что это скорее буквальное представление массива, подобное тому, что вы делаете в Ruby или JavaScript.

Тим: И вы все равно используете квадратные скобки для доступа к элементу массива, так что нет странного концептуального скачка.

Луи: Да, да, именно так. И это особенно важно, когда я работаю взад и вперед между Ruby и PHP-кодом в один и тот же день, например, объявление массивов — это то, что всегда приводит меня в замешательство, когда я вдруг набираю массив в своем Ruby-коде или пытаюсь сделать это в PHP; Я думаю, теперь это будет работать в PHP, поэтому, по крайней мере, одной из моих двух ошибок будет избежать.

Тим: Да, ваш код на Ruby теперь будет работать на PHP (смех).

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

Тим: Да, я действительно не знаю, у меня не было возможности взглянуть на какие-либо критерии.

Луи: Круто. Да, это так здорово, так что вы уже начали работать с 5.4 в своей повседневной работе?

Тим: Нет, на самом деле я нахожусь в интересной ситуации на моей работе с 9 до 5, где мы сейчас поддерживаем 10-летнюю базу кода, поэтому мы пока не в состоянии использовать функции 5.4 в нашем коде, мы ‘ медленно использую некоторые родные пространства имен, которые были в последней версии 5.3, медленно добавляя это.

Луи: Итак, еще одна вещь, которую многие люди, возможно, видели за последние несколько недель, ссылаясь на PHP, это то, что этот человек в своем блоге опубликовал эту действительно, очень долгую разглагольствование о PHP, и заголовок поста «PHP: Фрактал плохого дизайна. »

Тим: Да, я видел это.

Луи: Я предполагаю, что это означает, что это плохой дизайн, встроенный в плохой дизайн, так что, да, и, очевидно, я видел множество ответов на это в других блогах, на Hacker News, и людей, объясняющих, почему они используют PHP, почему Многие из этих функций или множество жалоб на то, что поднятые этим блоггером на самом деле не являются реальными жалобами, но да, я знаю, что мы немного поговорили перед шоу, и вы не прочитали все это, но я хотел Получите что-то вроде вашего быстрого прочтения по этому вопросу, потому что он распространялся так много в последнее время.

Тим: Да, я видел это, когда он впервые вышел, и я увидел первый абзац, и я вроде все в порядке, это — хорошо, куда он идет с этим, и я начал прокручивать вниз и вниз и продолжал прокручивать вниз и вниз и вниз, и он просто продолжал идти по пунктам, и некоторые из затронутых им вопросов касались проблемы с массивами, о которой мы только что говорили, но PHP 5.4 решает с помощью литералов массива. Также выяснилось, что не было настоящей поддержки Unicode, есть планы сделать Unicode в PHP, я верю в 6, но многое из этого было известно или пересмотрено в течение многих лет, противоречивые соглашения об именах для функций, и некоторые из них имеют изменилось, некоторые из них будут меняться, некоторые из них могут никогда не измениться, но я должен поблагодарить его за длину и за его страсть.

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

Луи: Да. Я имею в виду, что есть множество жалоб на любой язык или структуру, очевидно, это очень, очень исчерпывающая каталогизация жалоб одного человека с этим конкретным языком, и как было указано вами и другими критиками, которые я видно, что некоторые из этих недостатков либо больше не действительны, либо относятся к проблемам, которые существовали в PHP в прошлом, но больше не делают. Но, да, очевидно, что у PHP есть свои сильные стороны, и одна из тех сильных сторон, о которых вы уже упоминали, это то, насколько легко начинающим работать над ним. В качестве первого языка, который нужно изучать для программирования для Интернета, и особенно для людей, которые начинают заниматься интерфейсным веб-дизайном и хотят начать создавать и получать доступ к базам данных, этот шаг — просто создать файл, поместив его в вашу сеть напрямую, и даже больше или меньше вы в бизнесе, потому что у вас уже есть Apache с Mod PHP.

Тим: Да, если честно, вам просто нужно написать файл, и если он имеет правильное расширение, он работает, вы знаете, с точки зрения начинающего; Вам не нужно настраивать магические рамки или не нужно настраивать магический сервер.

Луи: Да. Мало того, очевидно, что PHP, который был так долгое время, невероятно хорошо протестирован, стабилен и быстр, и, конечно же, очевидно, что есть все эти крупные проекты, которые извлекают выгоду из этой простоты использования и этой простоты установки, вы знаете, , Drupal и WordPress и другие подобные проекты, Magento, потому что вы можете просто захватить эти файлы, поместить их на сервер и общий хостинг, и они будут запущены, если у вас есть база данных для подключения, это также невероятно мощный и именно поэтому я думаю, что даже при всем этом благоприятном восприятии, возможно, Ruby и Python, мы все еще не видели ни одного убийцы WordPress или Drupal, выходящего из сообщества Ruby, сообщества Python или любого другого языка.

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

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

Луи: Да.

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

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

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

Луи: Да.

Тим: Поскольку у меня нет времени возиться с вещами, и я не думаю, что я один в PHP-сообществе в целом, я знаю — я думаю, что Эд Финклер написал в блоге сообщение «Я PHP разработчик, а не разработчик фреймворка: «вы знаете, в PHP-сообществе есть много разломов, у Perl есть cpan, а у Ruby есть Gems, и PHP пытается создавать классы PHP, pair и peckle, и сообщество просто никогда не принимает этого. как и в других сообществах, все хотят попробовать свои собственные решения в лучшую или худшую сторону.

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

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

Тим: Это все равно, что спросить родителя, какой ребенок их любимый (смех), ты никогда не должен этого делать.

Луи: Я знаю, что это жестокий вопрос, но я все равно задам его.

Тим: У нас там много хорошего контента, и много чего происходит. Мы только что сделали серию из двух частей, «Непрерывная интеграция», посвященную Дженкинсу. Для тех, кто не знает, что такое Continuous Integration, она использует автоматизированные процессы для тестирования и сборки вашего кода, чтобы вы могли гарантировать целостность своей кодовой базы по мере разработки.

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

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

Луи: Да, и черты, я думаю, что я видел что-то о PHP Master.

Тим: Да, у нас есть статья о чертах характера.

Луис: Да, так что есть некоторые особенности и, как вы сказали, загрузка файлов и эти новые функции в PHP 5.4, так что любой, кто интересуется любопытством, вызванным нашим предыдущим обсуждением этих новых функций, может перейти на phpmaster.com и взгляните, некоторая подробная информация о том, как использовать эти новые функции.

Хорошо, хорошо, большое спасибо, Тим, за то, что нашли время попасть на шоу, было приятно пообщаться с вами.

Тим: Ну, пожалуйста, и большое спасибо за то, что приняли меня.

Луи: Абсолютно. Так что кроме phpmaster.com, если люди хотят подписаться на вас, вы в Интернете в своем блоге или в Twitter?

Тим: Да, у меня есть блог, zaemis.blogspot.com — мой блог, и я в Твиттере под именем @zaemis .

Луи: Хорошо, да, слушатели могут найти Тима там, а также, конечно, на phpmaster.com . Итак, еще раз спасибо, Тим, и удачи в PHP Master, с нетерпением ждем, что из этого получится в ближайшие несколько месяцев.

Тим: Хорошо, спасибо. Просто быстрое подключение в конце, если кто-то заинтересован в написании PHP Master, если у него есть уникальный проект, над которым он работает, и он хотел бы поделиться им со всем миром или своим уникальным взглядом на PHP, напишите мне письмо.

Луи: Хорошо, конечно, и они могут найти контактную информацию на phpmaster.com?

Тим: Да.

Луи: Да, в нижнем колонтитуле есть ссылка «напишите нам», поэтому, если вы хотите написать для phpmaster.com, просто нажмите на эту ссылку и отправьте ее Тиму. Хорошо, еще раз спасибо, Тим.

Тим: Хорошо, спасибо.

Луи: Пока.

И спасибо за прослушивание на этой неделе эпизода подкаста SitePoint. Мне бы очень хотелось услышать, что вы думаете о сегодняшнем шоу, поэтому, если у вас есть какие-либо мысли или предложения, просто зайдите на Sitepoint.com/podcast и вы можете оставить комментарий к сегодняшнему эпизоду, вы также можете загрузить любой из наших предыдущих эпизодов для загрузки. или подписаться, чтобы получить шоу автоматически. Вы можете следить за SitePoint в Твиттере @sitepointdotcom , это сайт dotpoint dotcom, и вы можете следить за мной в Твиттере @rssaddict . Шоу на этой неделе было спродюсировано Карном Броудом, а я — Луи Симоне, спасибо, что выслушали и пока.

Тема музыки Майка Меллы .

Спасибо за прослушивание! Не стесняйтесь сообщить нам, как у нас дела, или продолжить обсуждение, используя поле комментариев ниже.