![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Новое расширение PHP позволяет добавлять произвольные методы к скалярам15.02.2013 14:02
rsvasilyev
На Github появилось новое экспериментальное расширение PHP "scalar_objects", с помощью которого можно добавлять любые методы к числам, строкам, массивам.
Симпатично, не правда ли? Инструкции по установке можно найти по ссылке выше, требуется PHP 5.4. Имейте ввиду, что расширение находится в очень ранней альфа-версии, первый коммит датирован 24 января. Радует, что автор расширения - контрибьютор PHP Никита Попов: есть вероятность, что подобное API когда-нибудь добавят в ядро интерпретатора. Дальше я просто покажу как можно использовать эти новые возможности в разработке. Допустим, у нас есть вот такая строка:
Задача:
Обычно это делается так:
С помощью данного расширения задача решается в одну строчку:
Все понятно и красиво, только как такое провернуть? 1. Устанавливаем расширение scalar_objects; 2. Создадим классы-хендлеры для строк и массивов с нужными нам публичными методами:
3. Привяжем методы для строк и массивов к соответствующим классам:
После этого у строковых переменных появились методы replace, split, remove и так далее, у массивов - метод count(). Естественно, таких полезных методов можно добавить сколько угодно. Обратите внимание, что все они - публичные, а в качестве обрабатываемой строки(массива, числа) выступает $this. Подобным образом обработчики можно присвоить любому скалярному типу. Также следует отметить, что конструкции вида:
вызывают Parse error, то есть методы можно вызывать пока только у переменных. Также в репозитории есть пример реализации удобного API "запросов к строкам":
Очень наглядно и гораздо проще для запоминания, в отличии от strspn, strcspn, strpbrk. Хочется верить, что разработчики PHP включат подобный функционал в следующие версии. Чуточку такого синтаксического сахара сделает разработку намного приятней, а разработчиков - счастливее. Ссылка на проект: https://github.com/nikic/scalar_objects/ Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |