Хорошо бы чтобы разработчики подобных сайтов проявляли инициативу и за некоторую плату осуществляли самостоятельно рассылку новых объявлений. Это явно профит в обе стороны
Обычно узнаём об этом сразу же: у нас валятся тесты, где-нибудь в логах видны возникшие исключения, или мы слышим жалобы от наших клиентов — мол, то и сё перестало работать.
А тут все абсолютно работает, но в какой-то момент нашлась ошибка, которая перечеркивает все что сделала программа до этого. На сколько я понимаю если найти ошибку в генераторе случайных чисел, а на основе этого генератора создан криптографичесикй алогоритм хеширования, то все созданные хеши проще взломать, ведь ошибка ГСС может быть лишь в одном, вместо случайных он выдает не случайные — последовательность.
И я не верю что что-то новое, чего никогда раньше небыло можно написать без ошибок, хотябы потому, что во время написания не с чем сравнивать
Нет, это я к вашему утверждению о боязни накосячить. Каждую строчку кода нужно обосновывать математически, на мой взгляд даже ПО для марсохода писать проще, потому что на все можно написать тесты.
И автор не утверждает что этим не надо заниматься, он пишет, что в это не лезет, это разные вещи
А какой вы способ проверки можете придумать? Я не связывался с криптографией и вообще еще студент, но писал простейший алгоритм Хаффмана, так вот тут же вылились проблемы кодировок, почему-то английские буквы кодировались нормальные, а русские — только небольшие тексты. Я не знаю как на такое написать тесты, возможно просто мне не хватает знаний, но суть такова: когда на выходе вы получаете бинарные данные, которые выглядят как мусор, сложно разобраться и понять что есть хорошо, а что плохо, и где ошибка
В твиге все построенно на блоках. Наследуясь от шаблона — вы используете эти блоки, по умолчанию они выводятся как были. Вы можете не только вызвать другой блок, но и переопределить его, в общем выполнить привычные операции наследования
Каким образом вы это будете делать? Если у вас объект внутри содержит рекурсивно еще 3, один из которых например массив? Если вы будете все эти данные перебирать, невозможно будет реализовать lazy-loading например.
преобразование — не вариант. Вариант использовать github.com/symfony/PropertyAccess, но это какое-то извращение на мой взгляд
Невозможно так сделать, нативно, потому что вы должны быть уверенны, что все эти объекты имеют такой интерфейс. Результат всегда предсказуем, в другом комменте я вам уже описал, что это очень удобно, если у нас сначала был массив, а затем объект, главное чтобы сохранился общий интерфейс, то есть твиг меньше завязан на бизнесс-логику, нежели native-php
а что с массивами?
Вы можете для тестов в шаблон отправлять массив, с течением времени массив разрастется до объекта, а шаблон не поменяется. В общем суть в мелочах, советую вам просто один разочек попробовать, не думаю что пожалеете
Наоборот, мне синтаксис php нравится, тк он си-подобный, но он меня не устраивает в вопросах шаблонизации
У твига есть еще одна занимательная фича, можно написать var.name и вне зависимости от того объект это или массив, public св-во, или private, есть ли метод setName, или есть метод isName, в определенном порядке он вам это выдаст
На самом деле проще потратить 20 минут и прочесть введение для верстальщиков, думаю от сюда и будет ясно нужно ли оно вам, или нет twig.sensiolabs.org/doc/templates.html
Простите, прочитал не кеширование, а экранирование…
О каком кешировании речь? Шаблонизатор превращает код шаблона в нативный php, и дальше в зависимости от настроек, либо его каждый раз пересобирает, либо когда файл изменился, либо сразу подключает, без всяческих проверок.
А на счет наследования лучше почитать доки, очень простой пример:
Да, согласен. Правда я хотел показать немного другое, синтаксис языка программирования не подходит для шаблонизации, гораздо приятнее использовать специальный синтаксис.
Твиг для полноты поддерживает все возможные математически операции, множество функций, если есть функции, которых вам не хватает — добавить их не составит труда.
А вот по поводу второго комментария можно ли по подробнее, как это выглядит?
А тут все абсолютно работает, но в какой-то момент нашлась ошибка, которая перечеркивает все что сделала программа до этого. На сколько я понимаю если найти ошибку в генераторе случайных чисел, а на основе этого генератора создан криптографичесикй алогоритм хеширования, то все созданные хеши проще взломать, ведь ошибка ГСС может быть лишь в одном, вместо случайных он выдает не случайные — последовательность.
И я не верю что что-то новое, чего никогда раньше небыло можно написать без ошибок, хотябы потому, что во время написания не с чем сравнивать
И автор не утверждает что этим не надо заниматься, он пишет, что в это не лезет, это разные вещи
Графика конечно потрясающая судя по видео и воспоминаниям о vice city
преобразование — не вариант. Вариант использовать github.com/symfony/PropertyAccess, но это какое-то извращение на мой взгляд
Вы можете для тестов в шаблон отправлять массив, с течением времени массив разрастется до объекта, а шаблон не поменяется. В общем суть в мелочах, советую вам просто один разочек попробовать, не думаю что пожалеете
У твига есть еще одна занимательная фича, можно написать var.name и вне зависимости от того объект это или массив, public св-во, или private, есть ли метод setName, или есть метод isName, в определенном порядке он вам это выдаст
На самом деле проще потратить 20 минут и прочесть введение для верстальщиков, думаю от сюда и будет ясно нужно ли оно вам, или нет twig.sensiolabs.org/doc/templates.html
О каком кешировании речь? Шаблонизатор превращает код шаблона в нативный php, и дальше в зависимости от настроек, либо его каждый раз пересобирает, либо когда файл изменился, либо сразу подключает, без всяческих проверок.
А на счет наследования лучше почитать доки, очень простой пример:
А вот по поводу второго комментария можно ли по подробнее, как это выглядит?
e()? Если да — я утрировал, каждый сам для себя пишет хелперы, например ее реализация может выглядеть как-то так: