$query->chunk(500, function ($models) {});
$sql = $subQuery->toSql();
$query
->from("table as t")
->join(
"($sql) as sub",
function ($join) use ($subQuery) {
$join->on('t.field', '=', 'sub.field2)
$join->addBinding($subQuery->getBindings());
}
);
How to link two Docker compose?
- Create an external network with docker network create <network name>
- In each of your docker-compose. yml configure the default network to use your externally created network with the networks top-level key.
- You can use either the service name or container name to connect between containers.
uploads/1970-01-01/{user_id}/{form}/{field}/{original_name}_{uniqid()}.{extension}
, пока не привязана модельstorage/{model_name}/{model_id}/{original_name}_{uniqid()}.{extension}
'NAME': os.environ.get('POSTGRES_NAME'),
class ModelService {
protected $modelHelp;
public function __construct(ModelHelp $modelHelp) {
$this->modelHelp = $modelHelp;
}
public function test() {
echo 'It\'s OK';
}
public static function __callStatic($method, $parameters) {
return $this->modelHelp->$method(...$parameters);
}
}
class ModelHelp {
public static function test() {
static::getInstance()->test();
}
public static function getInstance()
{
return new Model;
}
}
class ModelHelp {
public static function getInstance()
{
return static::$instances[ static::class ] = static::$instances[ static::class ]
?? new static();
}
protected static $instances = [];
}
class ModelFactory {
protected $di;
public function __construct(\Psr\Container\ContainerInterface $di = null) {
$this->di = $di;
}
public function newModelService()
{
return new ModelService(); // а если ларавельный контейнер, то $this->di->make(ModelService::class);
}
public function getModelService()
{
return isset($this->di) && $this->di->has($name = ModelService::class)
? $this->di->get($name)
: $this->newModelService();
}
public static function getInstance()
{
return static::$instances[ static::class ] = static::$instances[ static::class ]
?? new static(); // вот здесь оно создаст фабрику БЕЗ контейнера, а нам то надо с, поэтому...
}
public static function withInstance(?ModelFactory $factory)
{
static::$instances[ static::class ] = $factory;
}
}
class ModelService {
public function test() {
echo 'test';
}
}
class ModelFacade {
public static function __callStatic($method, $arguments)
{
// и здесь тоже будут проблемы, но это правильное "решение"
// есть функции возвращающие void, там нельзя ставить спереди return
// есть функции работающие со ссылкой на входе, и там нельзя использовать магию
// есть функции возвращающие генератор и там нужно делать yield from вместо return
// есть функции возвращающие генератор и работающие по ссылке, там надо делать foreach ($gen) { yield $ref; }
return ModelFactory::getInstance()->getModelService()->{$method}(...$arguments);
}
}
$container = new Container;
$factory = new ModelFactory($container);
ModelFactory::withInstance($factory); // указали что наш экземпляр теперь "основной"
ModelFacade::test(); // и получаете 'test';
array_filter(explode(',', $string))
array_reduce(array_map(array_map($array)))
string.split(',').filter()
array.map().map().reduce()