Блог о программировании

Тенденции развития PHP. Будущее языка

Категория: PHP
 12 марта 2017 г. 19:32

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

Вот уже на протяжении 20 лет PHP входит в десятку популярнейших языков программирования. Повсеместно его используют в вебе для разработки динамических сайтов. На PHP создано большое количество быстро разворачиваемых платформ управления контентом(CMS) практически под любые нужды. Самые известные из них - WordPress, Joomla и Drupal. На их основе делают от простых блогов до сложных информационных систем и интернет-магазинов. Кроме того, на PHP изначально были написаны такие высоконагруженные системы как facebook и vkontakte. Вместе с тем PHP имеет самую неоднозначную репутацию среди профессионального комьюнити. Все дело в том, что для того, чтобы запустить собственный сайт на PHP глубоких познаний не требуется, ровно также как и титанических усилий. Это одновременно и неимоверное преимущество языка и его проклятье. Низкий порог входа в использование языка приводит к тому, что на нем пишет кто попало и как попало. Таким образом, существует большое количество программистов, пишущих низкосортный неподдерживаемый код. Одновременно с этим существуют и мощные фреймворки, например Symfony и Zend, которые являются образцами дизайна программных систем. Такое положение дел и приводит к тому, что одновременно с огромной популярностью языка существует большое количество ненавистников данного языка.


Тенденции развития языка

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

Читать далее  

Теги:  php 

Особенности ООП в PHP: traits

Категория: PHP
 23 февраля 2017 г. 20:37

Данная статья является логическим продолжением статьи о трейтах, выложенной на официальном сайте php. Начиная с версии PHP 5.4.0 появилась такая конструкция как трейты. Прошло уже более 4х лет с момента появления трейтов, тем не менее очень часто приходится сталкиваться с неясностью со стороны других разработчиков по поводу использования трейтов. Многие попросту не понимают, когда их нужно использовать и нужно ли вообще. В интернете полно информации о том, как их писать, объявлять, есть информация об особенностях поведения трейтов. Однако практически не раскрытым остается вопрос о том, в каких же случаях уместо их использовать. В данной статье постараюсь ответить на этот вопрос. Поскольку трейты уже не являются новинкой для языка PHP, можно обощить полученный опыт их использования и описать практики ввнедрения данного механизма.

Читать далее  

Теги:  ООП  php  traits 

Алгоритм сортировки пузырьком

Категория: Алгоритмы
 10 декабря 2016 г. 23:29

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

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

Читать далее  

Объектно-ориентированное мышление

Категория: Книги
 12 октября 2016 г. 23:22

Автор:Мэтт Вайсфельд

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

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

Очень много внимания в книге уделено около-ООПшным темам: диаграммы uml, шаблоны проектирования, фреймворки, форматы передачи данных xml и json, веб-сервисы и т.д. Данные темы в книге даются в ознакомительных целях. Получилась книга обо всем, но не о главном - мышлении объектами. В общем, уж лучше прочитать какую-либо другую книгу по ООП, нежели тратить время на эту. По теме ООП можно выделить книгу Брюса Эккеля "Философия Java" - описание ООП в ней ведется более последовательно и наглядно.

Теги:  книга  ООП 

Шаблон Observer на PHP

 26 сентября 2016 г. 18:28

Observer(Наблюдатель) - является поведенческим шаблоном проектирования. Является достаточно популярным шаблоном проектирования, но, при этом, очень прост в реализации. Данный шаблон предполагает зависимость между объектами "один ко многим" так, что при изменении состояния одного объекта все зависящие от него объекты уведомляются и обновляются автоматически. Таким образом, в шаблоне наблюдаются две роли: субъект и слушатель. Шаблон "Наблюдатель"определяется следующими свойствами:

  • существует, как минимум, один субъект, рассылающий сообщения;
  • имеется не менее одного получателя сообщений, причём их количество и состав могут изменяться во время работы приложения;
  • нет надобности очень сильно связывать взаимодействующие объекты, что полезно для повторного использования.

Шаблон подходит для любого сценария, в котором требуется использование push-уведомлений. Очень часто его можно заметить в системах пользовательского интерфейса.


Аналогия

Самая банальная аналогия - подписка на рассылки какого-либо сайта. Когда на сайте появляется новый материал, то всем подписчикам рассылается e-mail-уведомление о появлении нового материала, а подписчики уже принимают решение просматривать новый материал или нет.

Читать далее  

Простая jQuery галерея изображений

Категория: Javascript
 11 августа 2016 г. 17:30

Библиотека jQuery появилась в 2007 году. С тех пор с ее использованием было разработано огромное количество плагинов, в том числе и галерей изображений. Они изобилуют красивыми рамками, годными анимационными переходами и замечательным дизайном. Однако, что интересно, мне еще не попадалась на глаза какая-нибудь jQuery-галерея с возможностью поворота изображения. А ведь довольно часто приходится просматривать изображения, перевернутые на 90 градусов, а то и вовсе загруженные вверх-ногами. Именно такая функциональность требовалась для моего проекта.

На самом деле, переворачивать изображения с использованием javascript очень легко. Зная это, я решил написать свою простую галерею изображений с возможностью поворота, которая базируется на плагине jquery. Сказано – сделано, спустя несколько часов появились вполне себе годные результаты:

Читать далее  

Теги:  jQuery  javascript 

Обрезка изображений в PHP стандартными средствами

Категория: PHP
 8 июля 2016 г. 11:41

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

Обрезанное по центру изображение

Конечно, такой способ обрезки не тянет на звание "серебряной пули", но за неимением более продвинутой логики обрезки изображений вполне может успешно использоваться. Код, решающий таким образом задачу, приведен ниже:

Читать далее  

Теги:  php 

PHP. Рецепты программирования

Категория: Книги
 3 июля 2016 г. 16:26

Авторы: Дэвид Скляр, Адам Трахтенберг

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

В книге, в частности, описаны решения следующих наболевших задач:

  • валидация форм;
  • решение проблем безопасности;
  • работа с графиков;
  • обработка XML и JSON файлов;
  • работа с REST-сервисами;
  • рассмотрены вопросы интернационализации и локализации;
  • работа с регулярными выражениями;
  • работа с файловой системой;
  • отладка сценариев и написание юнит-тестов;
  • оптимизация веб-приложений.

Книга, безусловно, заслуживает внимания. Хотя бы как настольный справочник она будет выручать как начинающих, так и практикующих 1-2 года PHP-программистов.

Теги:  PHP  книга 

Реализация RSS-ленты на PHP с использованием ООП

Категория: PHP
 21 июня 2016 г. 1:09

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами. Обычно с помощью RSS 2.0 даётся краткое описание новой информации, появившейся на сайте, и ссылка на её полную версию. Интернет-ресурс в формате RSS называется RSS-каналом или RSS-лентой или RSS-фидом. Практически все популярные современные браузеры поддерживают RSS каналы: Safari, Maxthon, Mozilla Firefox, Mozilla Thunderbird, Opera, Microsoft Internet Explorer начиная с 7-й версии. Технически RSS-лента представляет собой веб-страницу, информация на которой отображается в определенном формате.

В данной статье будет рассмотрен самый последний формат на момент написания статьи - RSS 2.0. Полная спецификация данного формата находится здесь. Для того, чтобы RSS-лента корректно работала, одна должна быть пройдена валидатором.


Пример RSS

Читать далее  

Теги:  php  rss  ООП 

Ошибки в PHP. Ликбез

Категория: PHP
 17 июня 2016 г. 0:38

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

Видим ошибки

Читать далее  

Теги:  php  отладка