Gewusst wie: importieren von vendor-Dateien in CakePHP 3x
Arbeite ich mit CakePHP-3(beta 2) - version vor kurzem. Ich brauche zu integrieren, Facebook-Login mit Hilfe von PHP-SDKs und ich bin mir nicht klar mit dem Import von Lieferanten-Dateien in dieser version.
In CakePHP 2x, ich hatte mich
App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'src'. DS. 'facebook.php'));
So, ich brauche, um zu reproduzieren das gleiche in CakePHP 3x(ich bin nicht mit composer).
Jede Bezugnahme?
InformationsquelleAutor der Frage G.J | 2014-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut Sie haben, um es zu laden selbst wenn ein Komponist nicht eine option. Sie können immer die sehr grundlegende erfordern Methode und erstellen Sie eine neue Instanz der lieferantenklasse selbst. Referenz: http://book.cakephp.org/3.0/en/core-libraries/app.html#loading-vendor-files
Verwenden:
InformationsquelleAutor der Antwort Ayman Bedair
In cakephp3 , fügen Sie eine neue vendor-Bibliothek, die Sie können Folgen Sie den nachstehenden Schritten :
your_project/vendor/
require_once(ROOT . DS . 'vendor' . DS . "my_library_folder" . DS . "my_library_base_class.php")
dies beinhaltet den code für die Bibliothek-Datei in unserem code.
namespace App\Controller;
use MyLibraryBaseClass;
diese importiert die Bibliothek code-Datei in unserem namespace verwendet werden.
erstellen Sie ein Objekt der geladenen Klasse als
$my_obj= new MyLibraryBaseClass();
InformationsquelleAutor der Antwort Dashrath
die Antwort von Ayman B. sieht nicht wie das tun der job wie erwartet in der Frage nach der ich es versucht habe mich aus den folgenden Gründen :
\VENDOR\PACKAGE\TEST.CLASS.PHP und innerhalb der test.class.php es gibt keine definition einer Klasse, die aufgerufen werden muss, oder importiert in Ihrem Skript mit einem definierten namespace-Schlüsselwort in der Anfang des Skripts wie folgt aus : namespace
dann wird der obige code nicht funktioniert
Korrigieren Sie die Antwort, die Sie haben zu tun, einige in mehreren Schritten wie folgt :
1 - Definieren Sie in bootstrap.php eine neue cakephp konstant etwa so :
define('VENDOR',ROOT . DS . 'Hersteller' .DS); als VERKÄUFER constante ist entfernt in cakephp 3.x Sie können ihn selbst festlegen
2 - Danach müssen Sie angeben , den Namen des Herstellers , den Namen des Pakets und der Klasse, name des Herstellers constante wie :
define('_',; und dann können Sie tun, $facebookApi = new \\();
dies ist für Euch funktionieren wird, wie erwartet in der Frage
Wenn Sie Probleme versuchen, zurück zu mir , ich werde Ihnen zeigen, ein Beispiel für die Verwendung als hier beschrieben ...
InformationsquelleAutor der Antwort Shabasha
Ich hatte auch das gleiche problem mit CakePHP 3.0.
Tun, die installation wie angewiesen verwenden Komponisten.
Dann haben Sie, um richtig laden Sie das plugin in Ihrem controller mit der
use
- Anweisung. Wie diese:verwenden Ghunti\HighchartsPHP\Highchart;
Löst das problem mit dem plugin.
InformationsquelleAutor der Antwort DecoMartins
Als von CakePhp 3.x, die empfohlene code-standard ist die Verwendung von require_once ohne Klammern"()".
require_once(ROOT.'Ordner'.DIRECTORY_SEPARATOR.'requiredfile.ph');
wird
require_once ROOT.'Ordner'.DIRECTORY_SEPARATOR.'requiredfile.ph';
https://book.cakephp.org/3.0/en/contributing/cakephp-coding-conventions.html
Hoffe, das hilft jemand in der Zukunft.
InformationsquelleAutor der Antwort jilord2