Bonjour,
J'ai besoin de brancher un site fait avec CakePHP sur des BDD Access.
J'arrive à me connecter à des .mdb avec php seul, en passant par PDO et un driver ODBC, mais est-ce que quelqu'un a déjà utilisé CakePHP avec Access ?
Bonjour,
J'ai besoin de brancher un site fait avec CakePHP sur des BDD Access.
J'arrive à me connecter à des .mdb avec php seul, en passant par PDO et un driver ODBC, mais est-ce que quelqu'un a déjà utilisé CakePHP avec Access ?
Hello !
Dans l'installation par défaut, le pilote ODBC n'est pas inclus mais des datasources supplémentaires (dont un pilote ODBC) peuvent être trouvées ici
Merci Spartacusply.
J'ai jeté un oeil au code du Odbc.php, et je pense qu'il n'est pas compatible avec Access.
J'ai donc plutôt bifurqué vers le Adodb.php qui semble taillé pour...
Seulement voilà, j'ai maintenant de belles erreurs du type
Je peux tenter de remettre les signatures de chaque fonction identiques au modèle ?Envoyé par erreur à l'éxécution
C'est la bonne piste ou bien vous voyez mieux à faire ?
Oui c'est la bonne piste en effet, ces messages d'erreurs ne sont dû qu'aux dernières versions de PhP qui ont rajouté cette contrainte (alors quelle version exactement, je ne saurais te dire) mais n'empêche en rien le pilote (et toute classe Php d'ailleurs) de fonctionner. Tu peux changer les signatures des méthodes de la classe sans problème.
Tu crois que ça suffira ?
La méthode _execute() par exemple prend maintenant 3 paramètres.
Le second, c'est les params de la requête.
J'ai bien peur que cake n'envoie des params à la fonction, et qu'ils ne seront pas traités correctement...
Oui oui ça suffira, les paramètres seront toujours envoyés pas de soucis.
C'est juste qu'avant Php était permissif, on pouvait laisser sous-entendre que vu que c'était le même nom dans une classe fille, c'était une redéfinition de la méthode mère, peut-importe les arguments. Maintenant, il nous demande de bien indiquer la même signature que dans la classe parente pour qu'il n'y est aucune ambiguité, Php ne supportant pas la surcharge des méthodes de toute façon.
Ne serait-ce qu'un code comme ça maintenant te cri à la figure :
D'ailleurs le type de l'erreur est une erreur "Strict Standards" qui signifie "si l'on suit strictement les standards de codes" mais cela n'a aucun impact sur le code en tant que tel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class A { public function test($a, $b, $options = array()) { return 'bla'; } } class B extends A{ public function test($a, $b) { return 'bla'; } }
Partager