Как стать автором
Обновить

Комментарии 39

Давно PSR стали стандартом? Или выдаете желаемое за действительное?
Давно PSR стали стандартом?
С момента появления.

Скорей всего вы не правильно трактуете термин «стандарт». Стандарт это нормативный документ или свод правил. PSR как раз этим и является. В общем случае стандарт не является чем-то обязательным к исполнению. Любой желающий может написать свой стандарт. Можете создать проект на ГитХабе, написать свои правила для чего-либо и назвать это стандартом. Это будет абсолютно законно.

Вот трактовка у вас точно такая же, как и у меня, а понимаем по разному. Разве может быть 2 стандарта "метра", "килограмма"? Нет, т.к. иначе ни один из них нельзя назвать стандартом, верно?

По идее да, например Английская система мер и метрическая система мер.

В английской системе мер есть «метр»? Не знал.
Разве может быть 2 стандарта «метра», «килограмма»
Метры и килограммы являются часть системы единиц СИ. Никто не мешает вам создать свою единицу измерения (стандарт) и определить своё толкование метра и килограмма.
Другое дело, как сделать свой стандарт «официальным». Т.е. чтобы он стал применятся организациями или даже государствами.
> Другое дело, как сделать свой стандарт «официальным».
Демагогия пошла… Это и есть "стандарт".

По вашей логике получается, что если кто-то назовет python стандартом для php — это тоже будет «стандарт»?
По вашей логике получается, что если кто-то назовет python стандартом для php — это тоже будет «стандарт»?
Именно так. Стандарт вполне может быть абсурдным.
Ну вот в этом и отличие в понимании «стандарта» между нами. Я считаю, что стандарт — это общепринятая и повсеместно используемая инструкция. Как «стандарт форматирования кода в go», например. Без этого просто не соберется приложениие. Или как «метр» — все его понимают и используют одинаково.

А psr, в моем понимании, рекомендация — не видел еще ни одного проекта, который был-бы реализован без нарушений этих рекомендаций.
НЛО прилетело и опубликовало эту надпись здесь
Вон у «килобайта» два стандарта и ничего. По одному в нём 1000 байт, а по другому — 1024.
))) Странно, что заминусован пока что единственный адекватный комментарий
Если бы меня под давлением спросили что такое psr то сразу бы сказал про стандарт оформления. Просто забывается что это еще и интерфейсы, и прочее. Поэтому, наверное, стоит задавать наводящий вопрос.
Спасибо за описание.
Не все так жестоко :). Дальше задаются вопросы по конкретным стандартам, которые используются в нашем проекте. PSR стандарты не так сложно изучить, поэтому их знание скорее небольшой бонус, чем жесткое требование.

Странно, что автозагрузку классов по PSR-4 не добавили в сам PHP, чтобы не нужно было для каждого файла запускать код на PHP. В PHP автозагрузка есть, но вся проблема в том, что папки с именами пространств имён и файлы с классами должны быть преобразованы к нижнему регистру.


Если кратко, то чтобы включить автозагрузку в PHP нужно выполнить 3 шага:


  • добавить папку с классами в include_path;
  • указать окончание для файлов с классами (например, .php или .class.php);
  • зарегистрировать автозагрузчик.

set_include_path(get_include_path().':'.__DIR__.'/../classes/');
spl_autoload_extensions('.php');
spl_autoload_register();

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

Я когда-то давно наступал на посты о том, что разработки PHP крайне аккуратно подходят к фичам, которые ломают обратную совместимость. А такое решение бы похоронило тонны легаси.

А зачем менять дефотное поведение? Просто добавить возможность загружать из папок так, как требует PSR-4.

PSR-4 немного противоречит логике языка, поэтому вряд ли будет в него когда-либо включен. В PHP имена классов регистронезависимые, а автозагрузка по PSR регистрозависимая на регистрозависимых файловых системах


папки с именами пространств имён и файлы с классами должны быть преобразованы к нижнему регистру

оно же не просто так

Когда-то сам считал PSR исключительно стилем, и справедливости ради, чаще всего использование PSR ограничивается первыми тремя стейджами. А во всех других задачах часто просто тащатся компоненты симфони.

Сам подход хорош и должен развиваться. Если стандарт охватит большинство типовых конструкций и идиом, это может улучшить качество кодовой базы по языку в целом, избавив проекты новичков от особенно лютых костылей. Другое дело, что это немного дизмотивирует разработку своих велосипедов, что в 0.1% случаев может приводить к появлению лучшего способа запилить фичу.

Исправить надо, namespace появились с 5.4

Спасибо. Всегда думал они с 5.4 появились, ну как минимум я их стал использовать вместе с композер

НЛО прилетело и опубликовало эту надпись здесь
занимаясь срачем вместо помощи обществу.
Собственно PHP-FIG и представляет сообщество через его представителей от различных PHP фреймворков и CMS. Срач это вполне привычное явление при обсуждения холиварных вопросов. Мнений много, а результат должен быть один. Несогласные уходят.
twitter.com/fabpot/status/1064946913596895232
НЛО прилетело и опубликовало эту надпись здесь
Изучите почему симфони и доктрина покинули группу.
Можно для тех кто из леса, вкратце объяснить?
Знаю про только про симфони. Это было тогда, когда приняли PSR-14.
Подробнее: medium.com/@tdutrion/symfony-and-psr-14-event-dispatcher-f5a9db6740e7

Если в 2 словах, то релиз стандарта попал под LTS версию симфони, которая должна была еще н-время поддерживать php5.6. А данный стандарт использовал тип данных object и ограничивал использование версий php 7.0+.

Я не совсем понимаю почему из-за этого нужно было покидать PHP-FIG, так-как на сегодняшний день компоненты симфони поддерживают PSR и PSR-14 тоже доехал.
НЛО прилетело и опубликовало эту надпись здесь

Даже не раздуты, а их нельзя было реализовать в актуальных на тот момент компонентах (symfony/http-foundation, doctrine/cache etc), т.е. это никак не interoperability group.
Вот тут выжимка: https://hub.packtpub.com/symfony-leaves-php-fig-the-framework-interoperability-group/

НЛО прилетело и опубликовало эту надпись здесь

С выходом php7 большую часть кода и стандарта можно упростить, например через type hint
Реализовывал psr-16 кэшер файлов
Вот там описание гласит, например аргумент должен быть массив или DateTime, значит надо реализовать проверку, в php7 можно указать тип
Есть даже заготовки в виде утилит, но для кэша пустой ( https://github.com/php-fig/simplecache-util) пришлось чуть подсмотреть в заготовки psr-6 ( https://github.com/php-fig/cache-util )

$this->CI->load->helper('captcha');
$this->CI->load->helper('cookie');
$this->CI->load->helper('email');

Напишите в комментариях, если узнали где использовался данный подход

Очень похоже на service locator'ы в СodeIgniter. По тем временам, было очень удобно на нем писать, да и альтернатив особо не было.
В точку.
PHP развивается, набирает все большую популярность...

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

Разработчики PHP весьма оживились, за последние несколько лет были серьезные прогрессы в производительности, новые фичи, RFC и тп. Технология активно развивается (ждем PHP 8).

Что касается рейтинга: www.tiobe.com/tiobe-index
Мне кажется, это не совсем тот рейтинг, который стоит воспринимать, как показатель жизнеспособности языка(технологии).

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

PHP достаточно давно и стабильно занял свою нишу и пока все идет хорошо.

Я именно про популярность. С развитием у языка, как вы написали, действительно все хорошо. Спад популярности на графике с 2010 года, полагаю, связан с появлением/распространением новых языков/технологий. Появился nodejs, go. Django, рельсы и другие web-фреймфорки стали набирать популярность. Кто-то перешел на них с PHP, кто-то начал изучать их, как первый язык. Конечно же, это не могло не отразиться на популярности PHP.

Тут ещё надо различать абсолютную и относительную популярность. Первая может расти одновременно с падением второй. Грубо говоря, сообщество использующих PHP увеличивается каждый год на 100 000 человек (с учётом переставших использовать), а вообще сообщество использующих разные ЯП растёт быстрее, в результате чего доля PHP падает.

Например в этот рейтинг на 20 позицию попал Scratch.

Это достаточно популярный язык для обучения детей программированию. У коллеги сын ходит на курсы по робототехнике, там его используют для программирования роботов.
Познавательно. Особенно в части ссылок на рекомендации по «чистому коду». Спасибо.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.