У людей здесь есть части решения, но давайте свернем все это в одно решение.
Только для одного экземпляра функции оракула тестирование с function_exists()
вполне достаточно; но если код будет распространяться на вызовы OCI, то будет очень больно в задницу обернуть каждого в function_exists()
тест.
Поэтому, я думаю, самое простое решение - создать файл с именем nodatabase.php , который может выглядеть примерно так:
<?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...
Затем, условно включите этот файл, если глобальный (скажем, THEME_TESTING) определен непосредственно перед тем, где вызывается код базы данных. Такое включение может выглядеть так:
// 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.
Теперь, когда вы передаете проект художникам, им просто нужно сделать одну модификацию, и они готовы к работе.