web-dev-qa-db-fra.com

Doctrine fonction non définie apc_fetch

J'utilise ce tutoriel , qui donne une explication détaillée de la configuration de CodeIgniter et de Doctrine. J'utilise CodeIgniter 2.1.0 et Doctrine 2.2.1, mais j'obtiens cette erreur:

Erreur fatale: appel de la fonction non définie Doctrine\Common\Cache\apc_fetch() dans /Applications/XAMPP/xamppfiles/htdocs/emma_watson_shrine/application/libraries/Doctrine/Common/Cache/ApcCache.php à la ligne 52 

Peux-tu m'aider?

14
H Dindi

Vous devez activer l'extension APC pour PHP.

Suivez this guide.

Alternativement, vous pouvez utiliser un pilote de cache différent, tel que memcache, et modifier la configuration de Doctrine en conséquence.

Vérifiez la documentation de doctrine pour d'autres pilotes de mise en cache. La solution la plus simple serait peut-être d'utiliser ArrayCache dans le développement.

11

Si vous n'installez pas APC et que vous voulez simplement l'exécuter, changez de mode dans doctrine-cli.php à la ligne 6:

define('ENVIRONMENT', 'production');

à

define('ENVIRONMENT', 'development');

Ouvrez le fichier Doctrine.php, aux lignes 36 ~ 43, vous verrez pourquoi!

4
capu

Depuis php 5.5 apc n'est plus utilisé. Vous devriez installer apcu.

Par exemple.

apt install php5.6-apcu

Plus d'infos ici:

http://php.net/manual/en/opcache.installation.php

Et pour ceux sur php 7, il y a un module de compatibilité ascendante:

apt-get install php7.0-apcu
apt-get install php7.0-apcu-bc

En outre, vous devrez peut-être ajouter ce référentiel:

apt-add-repository ppa:ondrej/php
apt-get update
3
Henry

vous devez installer l'extension apc pour travailler avec la mise en cache. Il suffit donc de télécharger l'extension et de l'installer. 

Celui-ci vous aidera à installer l'extension APC sur Apache.

http://kvcodes.com/2014/06/solution-call-undefined-function-apc_fetch/

1
varadha

Sur OSX, je devais exécuter:

pecl channel-update pecl.php.net
pecl install apcu-4.0.11

installer pour PHP 5.6

https://getgrav.org/blog/macos-mojave-Apache-mysql-vhost-apc

0
Kim

Pour tous ceux qui l'obtiennent sur un Mac, installez simplement apcu en utilisant Homebrew :

brew install php56-apcu

(et activez l'extension si nécessaire).

0
Sawant