Стандартная библиотека в PHP небогата функциями для работы с коллекциями, строками или датами. Этот недостаток можно восполнить, подключив стороннюю библиотеку. Например, в мире JS, есть стандарт де-факто, без которого не обходится практически ни один проект - lodash. В PHP нет единого устоявшегося решения, но есть пачка небольших, которые используются в разных проектах. Часть из них основана на объектном синтаксисе, и мы рассмотрим их в более поздних уроках, а часть представляет из себя набор обычных функций. Кроме того, часть функций относится к функциям высшего порядка, которые мы ещё не проходили, но разберём уже в следующем уроке.
Объектные:
Использующие только функции:
Скажу сразу, что необходимость использования такой библиотеки в реальной работе возникает практически сразу. Те, кто не знает про них, постоянно пишут велосипеды. Ещё не так давно программисты в PHP создавали файлики с полезными функциями и таскали их из одного проекта в другой. Хорошо, что эти времена уже прошли и можно не тратить время на то, что уже делалось тысячу раз до нас. Однако, мы не сможем разобрать все возможные функции в рамках наших курсов. Кое-что рассмотрим, но в дальнейшем не забывайте периодически просматривать их на наличие чего-либо полезного.
Обратите внимание на документацию указанных библиотек. Зачастую они повторяют те функции, которые уже встроены в сам язык. Делается это по разным причинам. Вот некоторые из них:
Итак, поехали. Библиотека Funct.
Такая простая и нужная функция почему-то отсутствует в самом PHP.
<?php
\Funct\Collection\last([1, 2, 3]); // 3
Принимает на вход массив и возвращает новый массив, в котором отсутствует первый элемент исходного.
<?php
\Funct\Collection\rest([5, 4, 3, 2, 1]); // [4, 3, 2, 1]
Возвращает копию массива, из которого удалены все значения, переданные в функцию вторым и последующими параметрами.
<?php
\Funct\Collection\without([1, 2, 1, 0, 3, 1, 4], 0, 1); // [2, 3, 4]
"Выпрямляет" вложенный массив, делая его плоским.
<?php
\Funct\Collection\flattenAll(['a', ['b', ['c', ['d']]]]); // ['a', 'b', 'c', 'd']
Находит объединение множеств.
<?php
\Funct\Collection\union([1, 2, 3], [101, 2, 1, 10], [2, 1]); // [1, 2, 3, 101, 10]
Просматривает массив и возвращает первое значение, совпадающее по всем парам «ключ-значение», переданным вторым параметром.
<?php
\Funct\Collection\findWhere(
[
['title' => 'Book of Fooos', 'author' => 'FooBar', 'year' => 1111],
['title' => 'Cymbeline', 'author' => 'Shakespeare', 'year' => 1611],
['title' => 'The Tempest', 'author' => 'Shakespeare', 'year' => 1611],
['title' => 'Book of Foos Barrrs', 'author' => 'FooBar', 'year' => 2222],
['title' => 'Still foooing', 'author' => 'FooBar', 'year' => 3333],
['title' => 'Happy Foo', 'author' => 'FooBar', 'year' => 4444],
],
['author' => 'Shakespeare', 'year' => 1611]
); // ['title' => 'Cymbeline', 'author' => 'Shakespeare', 'year' => 1611]
Принимает на вход строку и возвращает её версию, записанную в нотации lowerCamelCase.
<?php
\Funct\Strings\camelize('data_rate'); // 'dataRate'
\Funct\Strings\camelize('background-color'); // 'backgroundColor'
\Funct\Strings\camelize('-moz-something'); // 'mozSomething'
\Funct\Strings\camelize('_car_speed_'); // 'carSpeed'
\Funct\Strings\camelize('yes_we_can'); // 'yesWeCan
Проверяет, включает ли строчка подстроку.
<?php
\Funct\Strings\contains('PHP is one of the best languages!', 'one'); // true
Проверяет, оканчивается ли строчка на подстроку.
<?php
\Funct\Strings\endsWith("hello jon", 'jon'); // true
В этом уроке перечислена лишь небольшая часть из всего того многообразия, которое вы можете найти на гитхабе, в документации соответствующих библиотек. Изучить все функции в рамках курсов невозможно да и не нужно. Достаточно периодически проходиться по документации популярных библиотек и просматривать то, как они используются. Так, постепенно, вы научитесь писать более понятный и лаконичный код.
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт