Показать сообщение отдельно
  #9 (permalink)  
Старый 18.05.2016, 21:20
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Глобальные приложения, включая константы, это не тот инструмент, который я стал бы использовать в своих приложениях. Лучше используйте override.

Если ваш код выглядит примерно так:

Ext.define('My.app.Proxy', {
    extend: 'Ext.data.proxy.Ajax',
    alias: 'proxy.myproxy',

    url: '/production/url'
});

Ext.define('My.app.Store', {
    extend: 'Ext.data.Store',

    proxy: 'myproxy'
});


Тогда можно добавить override, который будет включаться только в dev и testing сборках:

Ext.define('My.app.debug.Proxy', {
    override: 'My.app.Proxy',

    url: '/dev/url'
});


Самый простой способ включить такие override в отдельные сборки приложения, это держать файлы override в отдельной директории, которая включается только в нужных сборках через app.json:

"development": {
    "overrides": [
        "${app.dir}/debug-overrides"
    ]
},

"testing": {
    "overrides": [
        "${app.dir}/debug-overrides"
    ]
}


При таком подходе вам никогда не нужно будет мучаться головной болью от глобальных констант, случайно протёкших в боевую сборку.
Ответить с цитированием