Ludzie tutaj mają kawałki rozwiązania, ale niech toczyć to wszystko w jedno rozwiązanie.
Dla pojedynczego wystąpienia funkcji Oracle, testowanie z function_exists()
jest wystarczająco dobre; ale jeśli kod zostanie posypany do wywołania OCI, będzie to ogromny ból w dupie, który zawinie każdego w teście function_exists()
.
Dlatego myślę, że najprostszym rozwiązaniem byłoby, aby utworzyć plik o nazwie nodatabase.php że może wyglądać tak:
<?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...
Następnie warunkowo zawierać ten plik, jeśli globalna (powiedzmy, THEME_TESTING) jest zdefiniowany tuż przed miejscem wywołania kodu bazy danych. Taki to może wyglądać następująco:
// 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.
Teraz, kiedy ręka nad projektem do artystów, po prostu trzeba zrobić, że jedna modyfikacja i są dobre do pracy.
Tak ... ale to po prostu wypisuje na ekranie szczegóły. Chcę dowiedzieć się, jakie są szczegóły, a nie drukować rzeczy na ekranie. –