2014-09-27 2 views
1

Я устанавливаю Akeneo PIM. Он основан на структуре Symfony2.Что такое код операции и кеш данных в php

У этого есть некоторые предпосылки. Некоторые я понял, а некоторые сбивали с толку.

Я установил opcache Zend в WAMP, а в phpinfo он показывается, но я не знаю, какой кеш данных находится в php.

мне нужна помощь для этого .....

Я получаю эту ошибку:

(!) Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch() in D:\wamp\www\akeneo\vendor\doctrine\cache\lib\Doctrine\Common\Cache\ApcCache.php on line 40 
Call Stack 
# Time Memory Function Location 
1 0.0140 139760 {main}() ..\app.php:0 
2 0.4300 334232 Symfony\Component\HttpKernel\Kernel->handle() ..\app.php:24 
3 0.4300 334344 Symfony\Component\HttpKernel\Kernel->boot() ..\bootstrap.php.cache:2253 
4 84.9849 830408 Symfony\Component\HttpKernel\Kernel->initializeContainer() ..\bootstrap.php.cache:2222 
5 157.3350 19333112 Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate->warmUp() ..\bootstrap.php.cache:2451 
6 157.4190 19379904 Symfony\Bridge\Doctrine\CacheWarmer\ProxyCacheWarmer->warmUp() ..\CacheWarmerAggregate.php:47 
7 157.4330 19380208 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() ..\ProxyCacheWarmer.php:69 
8 159.3501 20279512 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() ..\AbstractClassMetadataFactory.php:114 
9 159.3561 20283608 Pim\Bundle\CatalogBundle\Doctrine\ArrayApcCache->fetch() ..\AbstractClassMetadataFactory.php:207 
10 159.3561 20283632 Doctrine\Common\Cache\CacheProvider->fetch() ..\ArrayApcCache.php:54 
11 159.3561 20283656 Doctrine\Common\Cache\CacheProvider->getNamespacedId() ..\CacheProvider.php:78 
12 159.3561 20283688 Doctrine\Common\Cache\CacheProvider->getNamespaceVersion() ..\CacheProvider.php:147 
13 159.3561 20284072 Doctrine\Common\Cache\ApcCache->doFetch() ..\CacheProvider.php:174 
+0

Пожалуйста, сообщите нам, если вам удастся сделать то, что вы хотите. Если вы считаете, что один из ответов помог вам или может помочь кому-то еще в будущем, пожалуйста, подумайте об этом и отметьте его. – foobar

ответ

1

Вы должны обязательно установить APC, расширение PHP на вашем "WAMP". Я думаю, Installing php_apc.dll on wampserver поможет вам установить APC на wamp для окон.

+0

Можем ли мы установить opc и apc как на wamp –

+0

Я не уверен в этом, но я думаю, вы должны прочитать это [http://stackoverflow.com/questions/17224798/how-to-use-php-opcache]. – kuldipem

1

Akeneo требует 2 типа кеша: один для ускорения выполнения кода, другой для кэширования данных.

Если вы используете PHP> = 5.5, рассмотрите возможность использования ZendOPcache и apcu. Обратите внимание, что ZendOPcache чаще всего устанавливается с PHP, но иногда вам нужно включить его самостоятельно.

Если вы используете PHP < 5.5, рассмотрите возможность использования apc и apcu.

Чтобы убедиться, что оба кеша включены, вы можете использовать простой скрипт PHP с вызовом phpinfo();. Советы: не используйте php -i в своей оболочке, чтобы проверить это, PHP-ускорители иногда отключены в режиме CLI ... Для Zend OPcache вы также можете использовать веб-страницу, такую ​​как предлагаемая Rasmus здесь: https://github.com/rlerdorf/opcache-status

И последнее, но не менее важное: я не рекомендую использовать Zend OPcache для разработки. Во-первых, вам, вероятно, не нужно больше работать при разработке, а во-вторых, вы, вероятно, потратите свое время, пытаясь выяснить, связаны ли ошибки кода с кешем или нет (например, если ваша конфигурация Zend OPcache очень агрессивна и делает не проверять изменения кода в ваших файлах PHP ...).