Apache2 mod_php en el código de la carpeta compartida de la máquina virtual utilizando un file no existente

Traté de configurar un entorno de desarrollo donde mi entorno de server es emulado por una máquina virtual ejecutando centos 6.3 y el desarrollo se realiza desde el sistema operativo host. El código de la aplicación (aplicación codeigniter) está en una carpeta compartida montada en / home / foo / Desktop / code / app y he creado un host virtual en apache para servir esta aplicación.

En el lado del desarrollo, git se usa como el VCS.

El problema es que al cargar un ayudante se incluyen dos files. Por ejemplo, tengo un ayudante en application / helper llamado my_date_helper. Tiene dos funciones. Yo autocarga este ayudante.

Al ejecutar esta aplicación, php arroja este error

Fatal error: Cannot networkingeclare time12to24() (previously declanetworking in /home/mlakhara/code/cosys/application/helpers/my_date_helper.php:9) in /home/mlakhara/code/cosys/application/helpers/MY_date_helper.php on line 11 

Cuando comento la function, dice que las funciones no están definidas.

Además, las funciones relacionadas con el time arrojan una advertencia diciéndome que configure una zona horaria que ya tengo en el file php.ini usando la opción date.timezone.

Supuse que estos dos files pueden ser incluidos dos veces con diferentes nombres, pero los numbers de línea sugieren algo más … (la function se declara en líneas diferentes).

La aplicación funciona correctamente cuando se sirve desde la carpeta normal (no compartida). Eliminé git del vn y lo intenté, pero no hizo ninguna diferencia.

Cual puede ser el problema ?

————— EDIT ———————– Tomando indicios de la respuesta de Magnus Eriksson, encontré que estaba cargando automáticamente estos ayudantes "extendidos" en lugar de cargar la ruta real y los ayudantes de date. Esto lleva a get dos copys de la misma function. Sin embargo, el problema con la configuration de la zona horaria aún persiste.

Como medida correctiva, agregué el valor del time a mi file .htaccess también. Sin embargo, ¿hay alguna forma mejor de hacerlo?

Intenta eliminar "my_" en el nombre del file. CodeIgniter usa "MY_" para extender el núcleo y puede probar con mayúsculas y minúsculas y, por lo tanto, cargar el mismo file dos veces.

De cualquier manera, como Rob W señaló, siempre ajuste sus funciones de ayuda en if (!function_exists()) {}

Acerca del problema de la zona horaria: como no he visto tu php.ini o tu configuration, no puedo decir por qué no funciona. Una solución debería ser agregar date_default_timezone_set('UTC'); (o qué zona horaria quieres) lo primero en index.php.

Como no siempre tengo acceso para modificar php.ini en serveres de producción de clientes, generalmente lo agrego.

Usted está definiendo la function dos veces. Al include los files, intente utilizar require_once('path/to/file.php') lugar de include o require . De lo contrario, en el file fuente, puede hacer:

 if(!function_exists("time12to24")) { function time12to24() [...] }