From: Christopher Jones Date: Mon, 16 Mar 2009 05:29:49 +0000 (+0000) Subject: Mac OSX customization for initialization error message X-Git-Tag: php-5.4.0alpha1~191^2~4146 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bc535521eb187fe6ecd6ef657996552d38fe92cd;p=php Mac OSX customization for initialization error message --- diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c index 7bafe568bc..25e5e6a7db 100644 --- a/ext/oci8/oci8.c +++ b/ext/oci8/oci8.c @@ -51,6 +51,16 @@ ZEND_DECLARE_MODULE_GLOBALS(oci) static PHP_GINIT_FUNCTION(oci); static PHP_GSHUTDOWN_FUNCTION(oci); +/* For a user friendly message about environment setup */ +/* TODO: add cases for SHLIB_PATH, LIBPATH, LD_LIBRARY_PATH_64 etc */ +#if defined(PHP_WIN32) +#define PHP_OCI8_LIB_PATH_MSG "PATH" +#elif defined(__APPLE__) +#define PHP_OCI8_LIB_PATH_MSG "DYLD_LIBRARY_PATH" +#else +#define PHP_OCI8_LIB_PATH_MSG "LD_LIBRARY_PATH" +#endif + /* True globals, no need for thread safety */ int le_connection; int le_pconnection; @@ -852,13 +862,9 @@ static void php_oci_init_global_handles(TSRMLS_D) if (errstatus == OCI_ERROR) { #ifdef HAVE_OCI_INSTANT_CLIENT -# ifdef PHP_WIN32 - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries"); -# else - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries"); -# endif + php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that " PHP_OCI8_LIB_PATH_MSG " includes the directory with Oracle Instant Client libraries"); #else - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and " PHP_OCI8_LIB_PATH_MSG " are set and point to the right directories"); #endif OCI_G(env) = NULL; OCI_G(err) = NULL; @@ -2599,14 +2605,11 @@ static OCIEnv *php_oci_create_env(ub2 charsetid TSRMLS_DC) PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIEnvNlsCreate, (&retenv, OCI_G(events) ? PHP_OCI_INIT_MODE | OCI_EVENTS : PHP_OCI_INIT_MODE, 0, NULL, NULL, NULL, 0, NULL, charsetid, charsetid)); if (OCI_G(errcode) != OCI_SUCCESS) { + #ifdef HAVE_OCI_INSTANT_CLIENT -# ifdef PHP_WIN32 - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries"); -# else - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries"); -# endif + php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that " PHP_OCI8_LIB_PATH_MSG " includes the directory with Oracle Instant Client libraries"); #else - php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and " PHP_OCI8_LIB_PATH_MSG " are set and point to the right directories"); #endif return NULL; } diff --git a/ext/oci8/tests/connect_without_oracle_home.phpt b/ext/oci8/tests/connect_without_oracle_home.phpt index cad7b9a404..52d5e9c5f6 100644 --- a/ext/oci8/tests/connect_without_oracle_home.phpt +++ b/ext/oci8/tests/connect_without_oracle_home.phpt @@ -31,6 +31,6 @@ else { ===DONE=== --EXPECTF-- -Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in %s on line %d +Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and %s are set and point to the right directories in %s on line %d bool(false) ===DONE=== diff --git a/ext/oci8/tests/connect_without_oracle_home_old.phpt b/ext/oci8/tests/connect_without_oracle_home_old.phpt index 618d340706..85d8668056 100644 --- a/ext/oci8/tests/connect_without_oracle_home_old.phpt +++ b/ext/oci8/tests/connect_without_oracle_home_old.phpt @@ -31,6 +31,6 @@ else { ===DONE=== --EXPECTF-- -Warning: ocilogon(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in %s on line %d +Warning: ocilogon(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and %s are set and point to the right directories in %s on line %d bool(false) ===DONE=== diff --git a/ext/oci8/tests/pecl_bug16035.phpt b/ext/oci8/tests/pecl_bug16035.phpt index 316f0c7cb3..447e398de0 100644 --- a/ext/oci8/tests/pecl_bug16035.phpt +++ b/ext/oci8/tests/pecl_bug16035.phpt @@ -23,5 +23,5 @@ oci_connect('abc', 'def', 'ghi', 'jkl'); ===DONE=== --EXPECTF-- -Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME is set and points to the right directory in %s on line %d +Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and %s are set and point to the right directories in %s on line %d ===DONE===