Size: a a a

2020 November 27

AM

Alexander Makarov in Yii Framework 3
Алексей R
ты вносишь изменения в конфиги params, web
ты их коммитишь
... деплой
они ребилдятся и кешируются
ОК, а как это работает в dev-режиме?
источник

AM

Alexander Makarov in Yii Framework 3
В проде ребилд и отсутствие array_merge, в общем-то, не зло. Наоборот.
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
ОК, а как это работает в dev-режиме?
как и сейчас
источник

А

Алексей R in Yii Framework 3
либо кешировать только вендор — норм, если это не разраб фреймворка )
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
как и сейчас
Ну вот это и было проблемой для @nex_otaku :)
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Ну вот это и было проблемой для @nex_otaku :)
не, для него пробелма это кеширование
источник

А

Алексей R in Yii Framework 3
а "как сейчас" я говорю об отсутствии кеширования )
источник

А

Алексей R in Yii Framework 3
ему вообще концепция автосборки конфигов из пакетов не нравится, так что тут уже не вылечить (полностью)
источник

NO

Nex Otaku in Yii Framework 3
Alexander Makarov
То есть его можно спрятать в конфиг плагин, верно? ;)
Не надо ничего прятать, всё что спрятано создаст проблемы.
источник

AM

Alexander Makarov in Yii Framework 3
Nex Otaku
Не надо ничего прятать, всё что спрятано создаст проблемы.
Ну адок же выглядит, не?
источник

AM

Alexander Makarov in Yii Framework 3
config/
 common.php
 web.php
 console.php
 params.php
 app
     common.php
     web.php
     console.php
     params.php
 packages/
    yiisoft/debug
       web.php
       params.php
    yiisoft/cache
       common.php
       params.php

и в том же web.php:


$params = require 'params.php';

return array_merge(
  require 'common.php',
  require yiisoft/debug/web.php,
  require yiisoft/cache/web.php,
  ...
  require app/web.php,
);
источник

AM

Alexander Makarov in Yii Framework 3
причём та же фигня повторяется в

 common.php
 web.php
 console.php
 params.php
источник

AB

Alexander Borisov in Yii Framework 3
А если заменить yiisoft/debug/web.php, на ../vendor/yiisoft/debug/config/web.php ?
источник

AM

Alexander Makarov in Yii Framework 3
Alexander Borisov
А если заменить yiisoft/debug/web.php, на ../vendor/yiisoft/debug/config/web.php ?
Ну мы так только чуть скроем:

config/
 common.php
 web.php
 console.php
 params.php
 app
     common.php
     web.php
     console.php
     params.php


В index.php будет require web.php

В web.php будет:

$params = require 'params.php';

return array_merge(
  require 'common.php',
  require '../vendor/yiisoft/debug/web.php',
  require '../vendor/yiisoft/cache/web.php',
  ...
  require app/web.php,
);
источник

AM

Alexander Makarov in Yii Framework 3
но тут, конечно, жирный минус перформансу прода
источник

AB

Alexander Borisov in Yii Framework 3
кому надо тот сможет этот массивчик закешировать сам
источник

AM

Alexander Makarov in Yii Framework 3
мёрж не такой уж лёгкий
источник

NO

Nex Otaku in Yii Framework 3
Alexander Makarov
config/
 common.php
 web.php
 console.php
 params.php
 app
     common.php
     web.php
     console.php
     params.php
 packages/
    yiisoft/debug
       web.php
       params.php
    yiisoft/cache
       common.php
       params.php

и в том же web.php:


$params = require 'params.php';

return array_merge(
  require 'common.php',
  require yiisoft/debug/web.php,
  require yiisoft/cache/web.php,
  ...
  require app/web.php,
);
Здесь папка "app" лишняя.

1. Никто не мешает лишние вложенные папки убрать и встраивать "на верхний уровень".

2. Именно такую иерархию наблюдал на многих проектах с многолетней разработкой, где разработчики сами строили конфиги как им удобно, пришли к подобным схемам.

Только отличие было в том, что не куча конфигов для одного пакета, а по одному файлу условно на пакет.

console.php - консоль
env.php - параметры кода приложения загружаемые из .env, например пароли, хосты для подключения, токены, секреты
params.php - параметры обычные
web.php - веб
test.php - тесты
components/
   mysql.php
   clickhouse.php
   logTargets.php
   redis.php
   sentry.php
   urlRules.php
источник

NO

Nex Otaku in Yii Framework 3
Это дело вкуса и того как удобно данной команде. Вполне норм, когда подстраивают структуру под себя. Простота схемы обеспечивает возможность её гибко и независимо менять.
источник

AM

Alexander Makarov in Yii Framework 3
Nex Otaku
Здесь папка "app" лишняя.

1. Никто не мешает лишние вложенные папки убрать и встраивать "на верхний уровень".

2. Именно такую иерархию наблюдал на многих проектах с многолетней разработкой, где разработчики сами строили конфиги как им удобно, пришли к подобным схемам.

Только отличие было в том, что не куча конфигов для одного пакета, а по одному файлу условно на пакет.

console.php - консоль
env.php - параметры кода приложения загружаемые из .env, например пароли, хосты для подключения, токены, секреты
params.php - параметры обычные
web.php - веб
test.php - тесты
components/
   mysql.php
   clickhouse.php
   logTargets.php
   redis.php
   sentry.php
   urlRules.php
Распиши до конца чтоли....
источник