кеширование запросов с FileCache

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

кеширование запросов с FileCache

Сообщение specterguy »

Здравствуйте!

Настроил Yii2 advanced для одного домена через htaccess - http://mickgeek.com/yii-2-advanced-temp ... ame-domain

все работает хорошо, но не кешируются запросы к бд
конфиг есть:

Код: Выделить всё

'enableSchemaCache' => true,
'schemaCache' => 'fileCache',
'schemaCacheDuration' => 0
и все равно вижу запросы в логе "SHOW CREATE TABLE ..."

Что не так сделал или что нужно ещё сделать? Спасибо
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

по этой ссылке http://mickgeek.com/yii-2-advanced-temp ... ame-domain я взял все кроме Nginx Configuration
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: кеширование запросов с FileCache

Сообщение padlyuck »

а вы в конфиге компонент кеша подключили с ключем fileCache?
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

да, подключил
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

никто не поможет? :(
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

попробуйте кто-нибудь, у кого Yii2 advanced настроен для одного домена (/ - фронтенд, /admin - бекенд), включить кеш enableSchemaCache, будет ли работать?
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: кеширование запросов с FileCache

Сообщение padlyuck »

я у вас еще раз уточню, вы уверены, что объявили кеш с cacheID == 'fileCache'? если неправильно указать schemaCache то работать будет, но появятся запросы о которых вы говорите. у вас в конфиге кеш подключен так?

Код: Выделить всё

return [
    'components' => [
        'fileCache' => [
            'class' => 'yii\caching\FileCache',
        ],
проверьте буква в букву.
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

я точно так указал
у меня все работало, когда я в OpenServer настроил под два домена (domain.com and admin.domain.com) и указал два documentRoot
простое кеширование сейчас $app->cache-get/set работает без проблем
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

мой htaccess в корне:

Код: Выделить всё

Options -Indexes

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^/__storage
    RewriteRule ^(.*)$ $1 [L]

    RewriteCond %{REQUEST_URI} ^/cp
    RewriteRule ^cp/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^cp/css/(.*)$ backend/web/css/$1 [L]

    RewriteCond %{REQUEST_URI} ^/cp
    RewriteRule ^(.*)$ /backend/web/$1 [L]

    RewriteRule ^(.*)$ /frontend/web/$1 [L]

</IfModule>

<Files ".gitignore">
    Order Allow,Deny
    Deny from all
</Files>
мой htaccess в frontend(backend)/web:

Код: Выделить всё

<IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php

</IfModule>
мой конфиг common/main.php:

Код: Выделить всё

return [
    'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    'bootstrap' => ['log'],
    'components' => [
        'assetManager' => [
            'basePath' => '@webroot/assets',
            'baseUrl' => '@web/assets'
        ],
        'fileCache' => [
            'class' => 'yii\caching\FileCache'
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['warning', 'error']
                ]
            ]
        ]
    ],
    'language' => 'en-US',
    'sourceLanguage' => 'en-US'
];
мой конфиг с env:

Код: Выделить всё

return [
    'bootstrap' => ['debug', 'gii'],
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => '...',
            'username' => '...',
            'password' => '...',
            'charset' => 'utf8',
            'enableSchemaCache' => true,
            'schemaCache' => 'fileCache',
            'schemaCacheDuration' => 0
        ]
    ],
    'modules' => [
        'debug' => [
            'class' => 'yii\debug\Module',
            'allowedIPs' => ['*']
        ],
        'gii' => 'yii\gii\Module'
    ]
];
мой конфиг main.php в бекенд:

Код: Выделить всё

return [
    'id' => 'app-backend',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['app\components\Bootstrap'],
    'defaultRoute' => 'cp/default/index',
    'homeUrl' => '/cp',
    'components' => [
        'session' => [
            'flashParam' => '__flash_cp'
        ],
        'user' => [
            'identityClass' => 'app\components\UserIdentity',
            'enableAutoLogin' => true,
            'loginUrl' => ['cp/default/login'],
            'identityCookie' => ['name' => '_identity_cp'],
            'idParam' => '__id_cp',
            'authTimeoutParam' => '__expire_cp',
            'absoluteAuthTimeoutParam' => '__absoluteExpire_cp',
            'returnUrlParam' => '__returnUrl_cp'
        ],
        'request' => [
            'baseUrl' => '/cp'
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false
        ]
    ],
    'params' => $params
];
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: кеширование запросов с FileCache

Сообщение padlyuck »

Код: Выделить всё

return [
    'components' => [
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'cacheFile' => [
            'class' => 'yii\caching\FileCache',
        ],
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => '...',
            'username' => '...',
            'password' => '...',
            'charset' => 'utf8',
            'enableSchemaCache' => true,
            'schemaCache' => 'cacheFile',
            'schemaCacheDuration' => 0
        ],
мой конфиг. лишних запросов нет. к сожалению без компонента cache проверить не могу, т.к. у меня он активно используется в проекте. попробуйте schemaCache не указывать, а сам компонент кеша настроить с дефолтным ID

Код: Выделить всё

return [
    'components' => [
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
specterguy
Сообщения: 51
Зарегистрирован: 2013.08.06, 15:19

Re: кеширование запросов с FileCache

Сообщение specterguy »

как же я протупил, я похоже забыл заинсталить свой env...

во всяком случае, спасибо, padlyuck, что уделили мне время
padlyuck
Сообщения: 302
Зарегистрирован: 2015.02.03, 09:50

Re: кеширование запросов с FileCache

Сообщение padlyuck »

отключил все что использовало компонент cache и тем не менее лишних запросов не появилось. возможно проблема у вас в системе. кстати, как у вас отсутствует в конфигах компонент cache, но работает $app->cache->get/set ?
Ответить