ООП в PHP: Абстрактные классы и интерфейсы

Одной из вещей, которая делает код более расширяемым, является полиморфизм. Я уже упоминал про него в нескольких предыдущих статьях. Напомню, что полиморфизм проявляется, когда версия переопределённого метода в цепочке наследования определяется прямо при его вызове исходя из типа объекта, от которого этот метод вызывается. Для того чтобы убедиться в наличии нужного нам метода у объекта можно проверять его тип при помощи оператора instanceof или уточнить тип аргумента метода. В этом случае, конечно, метод должен быть реализован хотя бы в том классе, имя которого мы указываем при использовании оператора instanceof или задаём в качестве типа аргумента. Теперь представьте, что нам нужно задать, что нужно уметь делать экземплярам заданного типа, но мы пока не знаем как они это будут делать. То есть нам необходимо обязать иметь реализацию некоторого метода в ветке наследования. Читать далее ООП в PHP: Абстрактные классы и интерфейсы

Удобный способ вёрстки универсальных иконок

Приветствую вас, читатели Тру-Кодера. Сегодня я расскажу вам об одном очень удобном способе вёрстки иконок, который уменьшит размер используемой для иконок графики и упростит создание css-спрайтов. Данный способ применим в основном в тех случаях, когда иконки находятся на однородном фоне. Итак, приступим. Читать далее Удобный способ вёрстки универсальных иконок

JS для начинающих. Урок 1.15: Методы для работы с массивами

В одном из предыдущих уроков я уже знакомил вас с массивами. Тогда был рассмотрен синтаксис объявления массивов и обращения к их элементам. В этом уроке мы сосредоточимся на описании встроенных методов для работы с массивами. Читать далее JS для начинающих. Урок 1.15: Методы для работы с массивами

Каррирование (карринг) в JavaScript

Нет, термин «каррирование» никак не связан со знаменитой приправой и вообще не имеет никакого отношения к восточной кухне. Это приём в функциональном программировании, позволяющий преобразовать функцию, заменив её несколько первых аргументов константными значениями, тем самым создав новую функцию с меньшим количеством аргументов на основе старой. Этот будет удобно применять в случае, когда первые несколько аргументов функции заранее известны, и указывать их при каждом вызове нет необходимости. Для краткости будем называть преобразовываемую функцию каррируемой, а функцию, которая её преобразовывает, каррирующей. Читать далее Каррирование (карринг) в JavaScript

ООП в PHP: Исключения

Под исключительной ситуацией понимают такую ситуацию возникшею в ходе выполнения кода, когда неясно, что делать дальше или дальнейшее выполнение кода бессмысленно. К примеру, скрипту не удалось установить соединение с базой данных, тогда добавление или выборка данных из неё заведомо бессмысленна. В php в подобных ситуациях часто нативная функция просто возвращает false и выполнение заведомо неработающего кода продолжается. Чтобы избежать подобной ситуации можно проверять значение возвращаемое функцией и, в случае если оно говорит о произошедшей ошибке, выводит предупреждение. Такой подход имеет некоторые недостатки. Во-первых, для изменения действий выполняемых при ошибке пользователю вашего кода придётся редактировать ваш код. Намного лучше было бы позволить ему самому определять механизм обработки этой ошибки. Во-вторых, возвращённое функцией значение не всегда может быть верно расценено, или вовсе остаться непроверяемым, тогда в случае ошибки придётся тратить время на выяснение её причин. В-третьих, не всегда верно стремиться обработать любую проблему прямо в методе или в функции, ведь в таком случае валидация параметров и обработка ошибок может загромоздить изначально достаточно простой код. Намного лучше каким-нибудь образом сообщить пользователю вашего кода, что что-то пошло не так, позволив ему самому решать, что делать в таком случае.

Для решения всех этих проблем и был придуман механизм обработки исключений. Читать далее ООП в PHP: Исключения

JS для начинающих. Урок 1.14: Собственные функции

js-custom-functionsФункция — это именованный блок кода, который определяется единожды и может вызываться многократно. Функция может иметь параметры, или аргументы, значения которых определяется при её вызове. Параметры могут использоваться внутри функции для осуществления каких-либо действий или вычисления возвращаемого значения.

В этом уроке мы сосредоточимся на объявлении и вызове собственных функций. Не забывайте, что в js есть множество встроенных функций. Некоторые из них мы вскользь затронули в одном из предыдущих уроков. Читать далее JS для начинающих. Урок 1.14: Собственные функции

Toolkit для ресайза и кропа изображений на PHP

Тулкит для ресайза и кропа изображенийДостаточно давно мы написали статью, в которой представили наш класc для ресайза и кропа изображений средствами php. В нём было множество недочётов и ошибок. И вот, наконец, мы выпускаем новую версию нашего продукта, существенно доработав его и исправив. Теперь это уже не одиночный класс, а целый Toolkit.
Читать далее Toolkit для ресайза и кропа изображений на PHP

vkyrse.biz — удобный информер валют для каждого сайта

vkyrseКоммерческие сайты часто сталкиваются с такой проблемой, что посетитель с них уходит, начиная изучать курсы валют на других ресурсах. Так, интернет-магазин или иной сайт, принимающий оплату, теряет клиентов. Безусловно, происходит это в 10-15% из общего количества случаев дополнительных переходов. Но ведь вам же не хочется терять своих посетителей, которые потенциально еще и могут оформить заказ? Если нет, то для вас есть отличная новость Читать далее vkyrse.biz — удобный информер валют для каждого сайта

JS для начинающих. Урок 1.13: Объекты

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

При помощи объектов удобно описывать реально существующие сущности или математические абстракции. Объект объединяет в себе данные о таких сущностях, что позволяет более чётко структурировать код. Читать далее JS для начинающих. Урок 1.13: Объекты

ООП в PHP: Наследование

inheritanceИз первой статьи в этой рубрике можно было узнать, что при помощи механизма наследования один или несколько классов-наследников могут приобрести свойства и методы своего класса-предка. Такой подход позволит не дублировать код, что плохо по некоторым причинам. Во-первых, если код дублируется, то писать его приходится больше и дольше. Во-вторых, в случае, если в код нужно будет внести некоторые изменения, то делать это придётся в нескольких местах. В-третьих, если дублируется код, то дублируется и ошибка, если она была допущена, и исправлять её придётся в нескольких местах. Кроме того при помощи наследования реализуется полиморфизм – механизм, который позволит сделать ваш код более расширяемым. Читать далее ООП в PHP: Наследование