Pull to refresh

Comments 22

Fistlab PHP Components без намёка на документацию. Как вообще так можно?

если посмотреть код, то ясно, что это даже не стоит обсуждать — какие-то поделки, коих тысячи на гитхабе, и каждый программист такое делал. Очень странно, что такое попало в статью.

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


Хотя не совсем понятно, для чего всё-таки это может понадобиться..

Awesome Doctrine — Подборка полезных ресурсов по Doctrine. Прислал im_special_one.

на данный момент там ни одного ресурса. зато есть около десяти очень простых (чуть ли не банальных) примеров использования доктрины, уложившихся в строк 20 кода. А больше там нет ничего.

Хорошая возможность дополнить, для этого же и создаются такие репозитории :-)

Пятиминутка PHP очень странная штука. Мало того, что выходит нерегулярно, так ещё и не пятиминутка ни разу, а на засыпку — даже не о PHP. Может переименовать стоит?

Выходит нерегулярно — таков он творческий процесс, если есть желание что-то записать — срочно пишу!

Не о PHP — выпуск о Rust был первым «не о PHP», и, возможно его стоило бы опубликовать в рамках какого-то другого проекта… но у меня нет планов по записи серии подкастов о Rust или подкаста «о программировании в целом», так что публикую в уже известный и готовый канал распространения.

Стоит ли переименовывать в «Подкаст о PHP и не только» — стоит, если есть планы частенько записывать выпуски из серии "… и не только", но пока таких планов нет.

Оставайтесь на связи, я планирую продолжать выпуски именно о PHP и в формате 5-10 минут (по большей части)!
PHP — первый язык с современной криптографий в стандартной поставке — О принятом недавно предложении включить библиотеку Libsodium в ядро начиная с PHP 7.2.

Опять всё в процедурном стиле :(

А чего вы ожидали? Libsodium на си написан.

php api к Libsodium не зависит от исполнения самой Libsodium

А вот тут вы не правы, это библиотека криптографии, поэтому накручивая любые штуки к ней вы теряете гарантии что она работает правильно, поэтому только прямой биндинг API. А дальше уже можете делать что угодно, но никаких гарантий что это будет правильно (с точки зрения криптографии в первую очередь) работать.

прямой биндинг и использование неймспейсов/ооп-подхода опять же не пересекаются. это не навороты.

Никто не запрещает вам сделать ООП библиотеку которая будет внутри использовать эти функции, но в криптографии есть места, когда нужно чётко представлять циклы жизни объектов, например хранилища ключей, которые должны быть очищены специальной функцией которая их сотрёт, а не просто освободит память.

Плюсы ООП:
— простой API

Минусы ООП:
— Нельзя воспользоваться примерами от оригинальной библиотеки (и это плохо, т.к. примеры написаны специалистами по криптографии и авторами библиотеки, а новые примеры напишет неизвестно кто и вероятность того что в них не будет ошибок ниже чем у примеров к оригинальной библиотеке)
— Нужно писать документацию, разъясняющую циклы жизни объектов, как выполняются копирования итд
— Потенциальные проблемы с GC и финализацией структур не в том месте где она должна произойти
— Больше трудозатрат
— Потенциальные ошибки в работе с памятью

Будь это любая другая библиотека я бы с вами согласился, но конкретно с этой решение абсолютно правильное
о psr/container теперь принят отлично ото раньше был container-interop, как раз заканчиваю свою библиотеку и сразу стандарт который она имплементит
list() Reference Assignment интересное предложение, но как должно работать
[&$a, &$b] = [$b, $a];
?
Как

$a = &$b; $b = &$a;

Ровно так же.
Не логично. Если без ссылок, то
[$a, $b] = [$b, $a];
сделает не как вы написали, а поменяет местами значения. А с ссылками пролучается они должны указывать друг на друга? Или молча поменяться без ссылок? Или выдать варниг/нотис?
Нелогично ему :) Потому что у вас передача по значению. Представьте себе, что это просто цикл, который выполняет последовательные действия и всё встанет на свои места.

Не запуская, попробуйте угадать результат (на PHP5):
$a = []; list($a[], $a[]) = [1,2]; var_dump($a);

$a = [1]; list($a[], $a[]) = $a; var_dump($a);
Ну, про эти примеры сто раз было написано когда 7ку выпутили: )
Я на это всё наткнулся за десятилетие до «семёрки». Ну и попробуйте объяснить себе второй пример в «семёрке». :)
А в семёрке то данный код работает совершенно иначе. Интересно.
К сожалению, расширения yii2mod нельзя назвать гибкими. Если в приложении уже есть компонент с тем же именем, например 'image', не получится использовать расширение yii2mod/yii2-image. Думаю, это касается и остальных расширений.
Sign up to leave a comment.