Все началось со статьи "PHP: фрактал плохого дизайна" (*). Понятия не имею, что хотел сказать автор, называя так статью - но он был из тех танцоров, которым мешают яйца.
С тех пор прошло много лет. Как бы не десять, да.
Язык очень серьезно изменился.
PHP тех лет и PHP нынешний - это два совершенно разных инструмента.
Ситуация в некоторой степени усугубляется тем, что в сети все еще полно рецептов и рекомендаций использовать PHP неправильно. Вплоть до, да, рекомендаций использовать mysql_connect(), эмулировать композер (потому что тогда композера ещё не было) или, прости господь (Тьюринг), не использовать классы в принципе. К счастью, сайты с такими советами совершенно естественным образом приказывают долго жить и исчезают.
Но люди-то помнят! Помнят, что когда-то PHP был плохим, что его было модно ругать, а таковой ругающий в глазах окружающих обретал ореол некой особенной праведности!
P.S. (*) а может быть, и немного раньше - но популярной проблема стала, по моим наблюдениям, именно с этого фрактала.
Мне однажды удалось сломать генту. Вот прямо до состояния Dependancy Deadlock, когда зависимость версий была принципиально неразрешима без сноса всех вовлеченных участников... и один из этих участников был kernel.
Но я старался, да.
Потом понял, что не вывожу администрирование генты сам, плюнул и поставил Debian 11.
P.S. Центос мне удалось сломать одним `make install` :-D
Или теперь можно сделать свой пак с софтом и назвать это ОС имени себя?
Всегда можно было. Главное не писать об этом на хабре, не приглашать СМИ для освещения сего достижения и не хвалиться в интернетах. Последствия могут быть... интересными!
Вероятно, мне следовал бы процитировать весь код... ну, или, по крайней мере, ключевые моменты.
// хелпер для установки соединения итд
$i_count = SphinxToolkit::createInstance(...);
$i_count = $i_count
->select(SphinxQL::expr('COUNT(*)'));
// еще цепочка вызовов с $i_count
$this->count = $i_count->execute()->fetchNum()[0];
if (...)
в чистом PDO я сказал бы fetchCol() и получил бы значение count(*).
В этой библиотеке я так сделать не могу. fetchNum возвращает мне массив из единственного элемента (с нулевым индексом), который содержит count(*) как строку.
> Западные страны поставляли и станки, и технологии. Сейчас этого не будет.
На западных странах свет клином не сошёлся...
И каким же образом должна достигаться эта гарантированность?
Вы знаете какой-нибудь реально действующий международный механизм?
Кроме как "отобрать ядерное оружие у всех и оставить у гаранта" ?
А где гарантия, что гарант не станет плевать на всех остальных и нарушать собственные договорённости?
Предлагаю вам подумать самому, почему это не работает.
Так ведь ядерная дубина есть и у вас..
И при всем при этом - вы объявляете санкции Максиму, но продолжаете использовать его МКС для удовлетворения любопытства.
Это другое (тм), понимать надо!
Те, от кого он тупел 20 лет назад, выросли. Стали взрослыми. Но не изменились.
Мы все понимаем, что Wordpress (а еще MediaWiki итд итп) хорошо бы переписать с использованием современных практик.
Но кто этим будет заниматься? И кому это нужно? (риторические вопросы)
Все началось со статьи "PHP: фрактал плохого дизайна" (*). Понятия не имею, что хотел сказать автор, называя так статью - но он был из тех танцоров, которым мешают яйца.
С тех пор прошло много лет. Как бы не десять, да.
Язык очень серьезно изменился.
PHP тех лет и PHP нынешний - это два совершенно разных инструмента.
Ситуация в некоторой степени усугубляется тем, что в сети все еще полно рецептов и рекомендаций использовать PHP неправильно. Вплоть до, да, рекомендаций использовать
mysql_connect()
, эмулировать композер (потому что тогда композера ещё не было) или, прости господь (Тьюринг), не использовать классы в принципе. К счастью, сайты с такими советами совершенно естественным образом приказывают долго жить и исчезают.Но люди-то помнят! Помнят, что когда-то PHP был плохим, что его было модно ругать, а таковой ругающий в глазах окружающих обретал ореол некой особенной праведности!
P.S. (*) а может быть, и немного раньше - но популярной проблема стала, по моим наблюдениям, именно с этого фрактала.
Как-то так.
Вот вы смеетесь, а некий В.П.Иванский на кафедре административного и финансового права по этому поводу научную статью написал:
https://cyberleninka.ru/article/n/informatsiya-ob-aure-cheloveka-kak-obekt-pravovogo-regulirovaniya-federalnogo-zakona-o-personalnyh-dannyh
А что делать IT-сотрудникам НЕ IT-компаний (например, в моем случае, я сотрудник интернет-сми...) ?
Загадка.
Простите, речь шла о том, чтобы использовать систему полнотекстового поиска ManticoreSearch вместо монструозного эластика.
Я не могу вам ответить на вопрос "как сделать бэкап википед на телефон". Спросите @Maxim_Evstigneev
Идеология сходная, не? Кривым рукам арклинукс не помеха!
То есть, я бы и ArchLinux уронил бы, дай мне волю ;-)
Мне однажды удалось сломать генту. Вот прямо до состояния Dependancy Deadlock, когда зависимость версий была принципиально неразрешима без сноса всех вовлеченных участников... и один из этих участников был kernel.
Но я старался, да.
Потом понял, что не вывожу администрирование генты сам, плюнул и поставил Debian 11.
P.S. Центос мне удалось сломать одним `make install` :-D
А зачем эластик? Почему не ManticoreSearch?
Всегда можно было. Главное не писать об этом на хабре, не приглашать СМИ для освещения сего достижения и не хвалиться в интернетах. Последствия могут быть... интересными!
Вероятно, мне следовал бы процитировать весь код... ну, или, по крайней мере, ключевые моменты.
в чистом PDO я сказал бы fetchCol() и получил бы значение count(*).
В этой библиотеке я так сделать не могу. fetchNum возвращает мне массив из единственного элемента (с нулевым индексом), который содержит count(*) как строку.
Моя прям мечта - чтобы все методы лежали внутри классов :)
И надо было писать String::length($s).
или Array::have_key()
Или даже use Array::*; ... have_key()
полифиллы для такого есть, в количестве, но что-то меня останавливает...
Причем в языке все еще сотни функций с подчеркиванием (и сотни без него вообще):
random_int, mb_strlen... но - strtr.
И даже strip_tags, но - stripslashes!
И ни одной в camelCase.
Я в курсе, как работают query builder'ы ;-)
Не то чтобы мне нельзя было её удалить... можно, просто с ней намного удобнее. Еще удобнее было бы её переписать под себя, но - когда?
Прошли те годы, когда я кодил даже на выходных ;-)
Мне вот интересно, с какой целью метод fetchNum возвращает МАССИВ? С единственным элементом типа "строка".
Не подскажете?