Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
слишком много утечек в ядре
declare(strict_operators=1) и ещё что-нибудь в таком духе…==>, тогда в запросах YaLinqo будет достаточно удалить кавычки вокруг «строковых лямбд», и синтаксис идеально совпадёт. :)use какую-либо позицию не принял. Хоть что-нибудь сделали бы уже, хоть как-нибудь.Ох, и опять проголосовали против…
<?php
class Example
{
private final static $logger = new Logger(__CLASS__);
private $someSimpleDependency = new SimpleDependency();
public function doSomething(Argument $argument = new Argument())
{
}
}
class Enum
{
const SOME_VALUE = new self('some value);
// ...
}
Моему сердцу родней пачка наблюдателей, а не сигналы/слоты
без лапши в коде
loadUser() всегда возвращает объект типа User, а findPostsForUser() всегда возвращает integer, нет никакой возможности сделать этот код верным.
function findPostsForUser(int $uid): array {
// Obviously something more robust.
return [new Post(), new Post()];
}
declare(strict_types=1);, под которым я и подразумеваю термин «режим строгой типизации»Хинтинг — это когда варнинги
in PHP 5, this will be a recoverable fatal error, while PHP 7 will throw a TypeError exception.
И без тестов или просто тестового запуска мы не увидим этих ошибок. И получается, что это нафиг не надо.
От статичной типизации есть пользя т.к. проект просто не соберется при наличии ошибки. Но php — это не тот случай.
А с тестами эта штука не нужна.
оно пока еще сыровато
Потому что в вэбе почти всё строки
от неймспейсов я до сих пор офигеваю открыв исходник и увидев шапку из use
а импортировать каждый класс нужно отдельно
namespace AppBundle\Entity;
use AppBundle\Entity\SfGuard;
$user = new SfGuard\User();
// from FooLibrary use Foo, Bar, Baz; // Nope
use FooLibrary{ Foo, Bar, ClassD as Baz };
Новый PHP, часть 2: Scalar types