funciones config_item composer_autoload composer php codeigniter autoloader

php - composer_autoload - config_item codeigniter



CodeIgniter: “No se puede cargar la clase solicitada” (3)

En mi caja de WAMP, hice lo siguiente:

  1. Se agregó un archivo llamado /application/libraries/Foo.php
  2. Foo.php es una clase, y su nombre es Foo
  3. En /application/config/autoload.php, agregué $autoload[''libraries''] = array(''foo'');

Todo funciona bien. Cuando subo a mi casilla LAMP, aparece el siguiente error:

Unable to load the requested class: foo

El permiso de /application/libraries/Foo.php es 0755. El propietario es el mismo que el resto de los archivos de CI. Sacar foo de la carga automática hace que el problema desaparezca.

¿Alguna idea de lo que podría estar mal?


En Windows, el uso de mayúsculas en las rutas no importa. En Linux lo hace.

Cuando carga automáticamente, use "Foo" no "foo".

Creo que eso hará el truco.

Creo que funciona cuando lo sacas de la carga automática porque el codeigniter es lo suficientemente inteligente como para averiguar el uso de mayúsculas en la ruta y las clases son independientes de mayúsculas en php.


Si está utilizando un servidor Linux para su aplicación, entonces es necesario utilizar el nombre de archivo en minúsculas y el nombre de clase para evitar este problema.

Ex.

Nombre de archivo: csvsample.php

class csvsample { }


Tuve un problema similar al implementar desde OSx en mi local a mi sitio en vivo de Linux.

Funcionó bien en OSx, pero en Linux estaba obteniendo:

An Error Was Encountered Unable to load the requested class: Ckeditor

El problema fue que las rutas de Linux aparentemente distinguen entre mayúsculas y minúsculas, así que tuve que cambiar el nombre de mis archivos de biblioteca de "ckeditor.php" a "CKEditor.php".

También cambié mi llamada de carga para que coincida con el uso de mayúsculas:

$this->load->library(''CKEditor'');