Les personnes ici présentes ont des éléments de solution, mais regroupons-les en une seule solution.
Pour une seule instance d'une fonction oracle, le test avec function_exists()
est suffisant ; mais si le code est saupoudré d'appels OCI, il sera très difficile d'envelopper chacun d'entre eux dans une balise function_exists()
test.
Par conséquent, je pense que la solution la plus simple serait de créer un fichier appelé nodatabase.php qui pourrait ressembler à quelque chose comme ça :
<?php
// nodatabase.php
// explicitly override database functions with empty stubs. Only include this file
// when you want to run the code without an actual database backend. Any database-
// related functions used in the codebase must be included below.
function oci_connect($user, $password, $db = '', $charset='UTF-8', $session_mode=null)
{
}
function oci_execute($statement, $mode=0)
{
}
// and so on...
Ensuite, incluez conditionnellement ce fichier si un global (disons, THEME_TESTING) est défini juste avant l'endroit où le code de la base de données est appelé. Une telle inclusion pourrait ressembler à ceci :
// define("THEME_TESTING", true) // uncomment this line to disable database usage
if( defined(THEME_TESTING) )
include('nodatabase.php'); // override oracle API with stub functions for the artists.
Désormais, lorsque vous confiez le projet aux artistes, il leur suffit d'effectuer cette seule modification et ils sont prêts à partir.