Comments 55
??
полезный оператор. Еще бы сделали какой-нибудь оператор типа <?== $something ?>
, который бы автоматически оборачивал выводимую строку в htmlspecialchars()
.Сделано: http://twig.sensiolabs.org
1) вы сравниваете скорость рендринга или скорость компиляции?
2) вы точно знаете на что способен твиг? С возможностью манипулировать AST возможности твига в плане расширения поистене огромны. Я как-то пробовал сделать jade на twig-е (просто как эксперемент). Подозреваю что сделать подобное на смарти будет как минимум неимоверно сложно.
PHP — не шаблонизатор, и не надо его использовать как шаблонизатор.
Если вы будете руками везде указывать экранирование для переменных — вы его в конце концов где-нибудь забудете, и получится нехорошо.
Экранирование должно быть включено по умолчанию. Как и сделано в шаблонизаторах.
Таки нет, PHP нельзя назвать нормальным шаблонизатором. Его можно в теории использовать как подобие шаблонизатора, но нет абсолютно никаких причин так делать.
Извините, но то, что на википедии в список шаблонизаторов включен PHP — не знает, что надо использовать его как шаблонизатор. Если вам нужен шаблонизатор, голый PHP для этой задачи брать нельзя.
с версии 4 уже точно нет. Первые две версии — да, шаблонизатор для Си.
Полёт нормальный, ЧЯДНТ?
Результаты PHPUnit выглядят так, например:
$ phpunit.phar tests/
PHPUnit 4.8.8 by Sebastian Bergmann and contributors.
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
....................................................................................
Time: 4.06 minutes, Memory: 54.00Mb
OK (400 tests, 600 assertions)
и после
$ phpunit.phar tests/
PHPUnit 4.8.8 by Sebastian Bergmann and contributors.
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
.........................................................................................
....................................................................................
Time: 1.57 minutes, Memory: 54.00Mb
OK (400 tests, 600 assertions)
PS: паста не натуральная, для примера, цифры по памяти поставил.
PPS: а, вероятно вы имели ввиду тесты на перфоманс. Нет, такие мы, к сожалению, ещё не делали.
ЧЯДНТ?
Юзаете Yii, а не Laravel, очевидно ;)
Белый экран — связан именно с неправильными настройками.
несколько проектов на пхп, всё ок :)
declare(ticks=1) limited to scope of file makes Signal handling difficult
Еще переименовали модуль mongo в mongodb из-за чего монгу пришлось пришлось убрать из зависимостей composer'а
Для разработки сойдет, а для продакшена будем ждать php7.1
Уже давно не рекомендуется делать использовать declare tick для обработки сигналов. Используйте: http://php.net/pcntl_signal_dispatch
Ой, я его пытался потыкать палочкой и случайно уронил.
Пойду, напишу автору.
Упражнение 4. PHP4 конструкторы признаны устаревшими, используйте __construct
Что за дичь!?
И причем в руководстве по ПХП7, говорить о том, что не так в ПХП4?
Или я что-то не понимаю!? Объясните пожалуйста.
Конструктор должен носить такое же имя как и класс
т.е. если класс называется Foo, то и функция также должна называться Foo.
class Foo
{
public function Foo()
{
}
}
echo "Next step !";
// Result
Next step !
public function __construct() {}
если я правильно помню в php 7.1 ваш код уже не будет работать, в php 7.0 будет писать что то типа:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3
А вообще тут более детально описано: php.net/manual/ru/migration70.deprecated.php
Конструктор должен носить такое же имя как и класс
добро пожаловать в 2017-ый год. Уже с версии 5.0 имя конструктора __construct
. Для консистентности с деструкторами например и прочими методами жизненного цикла объекта (__clone
, __sleep
и т.д.) было принято решение задепрекейтить эти вещи.
Подробнее тут: https://wiki.php.net/rfc/remove_php4_constructors
Да, самое забавное в php7.1, что в таком варианте оно работает, но если мы пишем класс внутри namepace, то уже так работать не будет, но при этом и ругаться тоже не будет.
Руководство по PHP7