Code igniter Dritten, $this->laden->add_package_path nicht richtig funktioniert
Ich versuche, mit elliothaughins Kontakte Knüpfen-system für code igniter,
Jedoch, dass ich immer
Nachricht: include(application/third_party/config/socializenetworks.php): failed to open stream: Keine solche Datei oder das Verzeichnis
Habe ich verfolgt dieses Problem und wenn ich Anrufe
$this->load->add_package_path(APPPATH.'third_party/socialize/');
In der loader-Klasse, wenn ich die($path)
bekomme ich nur application/third_party
.
Scheint es allerdings merkwürdig, da der code für den controller ist
class SocializeController extends CI_Controller {
function __construct(){
parent::__construct();
parse_str($_SERVER['QUERY_STRING'], $_GET);
$this->load->add_package_path(APPPATH.'third_party/socialize/');
$this->_autoload();
}
private function _autoload(){
$this->load->model('socialize_migration_model');
$autoload = array();
include(APPPATH.'third_party/socialize/config/autoload'.EXT);
foreach ( $autoload as $type => $files ) {
$type = ($type == 'libraries') ? 'library' : $type;
foreach ( $files as $file ){
$this->load->$type($file);
}
}
}
public function data($key, $value)
{
$this->load->vars(array($key => $value));
}
}
Die, wie Sie sehen können, es ist der Aufruf, ein Modell, das es erfolgreich geladen,
Es ist, wenn Es um den autoloader lädt die Bibliotheken, wo es bricht,
Die Besondere Bibliothek, die Ausgabe startet wie
class SocializeNetworks {
private $_obj;
private $_networks = array();
function __construct(){
$this->_obj =& get_instance();
$this->_obj->load->config('socializenetworks'); //this is the line we die on :(
So,
Was ist denn hier Los und wie kann ich es beheben?
- Es versucht, eine Datei, die sich in
application/third_party/config/
, aber Ihre third-party-Modul erscheint inAPPPATH.'third_party/socialize/
. Sie haben eine bestehendeapplication/third_party/config/
Ordner? Was ist da drin? - Sicher das muss ein Fehler sein, Die Idee des Dritten Ordnern ist, dass Sie bereitstellen können einen ganzen Satz, Bibliotheken, Helfer, models, config-Dateien, Ansichten in EINEM Ordner, wenn Sie Ihren config-Dateien otu, dass der Ordner, in dem es Niederlagen der Zweck...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verfolgte dies bis auf einen bug nur gestern in der CI-v2.0.2 code-Basis. Im wesentlichen, was passiert ist, Sie hinzufügen einen zusätzlichen Weg, um zu überprüfen für Dateien (was richtig ist) und die load-Methode in einer Schleife durch jeden der Pfade, bis er die Datei findet, die Sie suchen.
Wenn Sie die Ausgabe Ihres CI-Objekt, Sie werden wahrscheinlich sehen, dass das, was Sie suchen, ist da, aber es geht immer noch nicht.
In der Datei /codeigniter/core/Config.php wo die load-Methode ist, aus irgendeinem Grund, das $gefunden=false; nicht zurückgesetzt bei jeder iteration durch die Pfad-Schleife, so dass, wenn der Weg gefunden wird, auf dem ersten Lauf (wie es in meinem Fall war) dann $gefunden wird auf true gesetzt, dann aber auf der anschließenden läuft, $found ist immer noch wahr, so dass es versucht, um eine nicht-existente Datei.
Ich löste dies, indem der die Erklärung für die $variable nur bis unter den Anfang der ersten foreach-Schleife. Auf diese Weise stellt sich es zurück, jedes mal. Ich habe den bug gemeldet, also wird es hoffentlich angesprochen werden, die in nachfolgenden Versionen.