2013-08-21 18 views
5

Ich suche nach einer Plugin-Struktur für Laravel-basierte Anwendungen.Laravel 4 Stecksystem

Zum Beispiel kann eine Forum-Software, ein CMS oder eine E-Commerce-Anwendung von einer Plugin-Struktur profitieren.

Meine Frage ist, was der beste Weg ist, dieses Plugin-System zu implementieren, so dass Plug-ins von Drittanbietern die Anwendung erweitern können. Das Hauptproblem ist, dass es dynamisch erweiterbar sein sollte und Benutzer in der Lage sein sollten, diese Plugins einfach zu installieren, ohne den App-Code zu stören.

Diese Frage erstreckt sich auch auf Themen, aber das ist eine andere Frage. Irgendwelche Ideen?

+0

Sie interessiert sein an [Package Development] (http://laravel.com/docs/packages) –

+1

Es gibt viele verschiedene Möglichkeiten, dies zu tun. Einige wurden auf Stackoverflow in ähnlichen Fragen skizziert, wenn Sie das Laravel 4 Detail weghalten. Wenn Sie eine Besprechung mehrerer Konzepte in verschiedenen Systemen mit ihren Vor- und Nachteilen untersuchen möchten, finden Sie hier einen Vortrag, der mehrere davon abdeckt: [Modulare Anwendungsarchitektur - Confoo.ca 2012] (http://qafoo.com/ talks/12_03_confoo_modular_application_architecture.pdf) ([via] (http://qafoo.com/resources/presentations.html)) – hakre

Antwort

0

Ich bin ein wenig verwirrt über die Frage, aber ich glaube, was Sie suchen, ist bereits in Laravel 4 implementiert. Sie werden nur Pakete genannt, und können bei http://www.packagist.org gefunden werden und einfach installiert und in Ihre Anwendung automatisch geladen werden Komponist.

+2

Dieser Ansatz kann für einen Entwickler gut geeignet sein, der der Software Funktionalität hinzufügen möchte. Aber wenn ein Benutzer, der eine Site verwaltet, ein Plugin zur Site hinzufügen möchte, ist dieser Ansatz kompliziert. Es sollte so einfach sein, wie ein Plugin von einem Panel aus hinzuzufügen und es zu aktivieren oder zu deaktivieren. Was ich gerne wissen möchte ist, wie man das am besten mit Laravel integriert. – Sinan

2

Laravel ist ein Rahmen, kein CMS wie Wordpress oder Joomla, so Plugin-System, das jeder passt kann sehr schwierig sein, zu schaffen, wie Laravel kann in vielerlei Hinsicht verwendet werden, aber ich kann wirklich den Nutzen sehen einfache Pakete in einigen Kontexten.

Die Packagist bereits erwähnt wurden und es direkt Ihr Problem nicht lösen, sondern, wie etwa:

  1. Finden gut verwertbare Pakete von Packagist für die Zwecke benötigen Sie
  2. gemeinsame Plugin-Architektur definieren (allgemeine API für das Binden von Dingen, Installer, Paketformat, Migration, Updates etc.) auf Packagist-Paketen
  3. Erstellen Sie ein Installationsprogramm, das Pakete über Packagist/Composer abruft und Sätze Standardeinstellungen und Konfiguration für die Pakete und Integrate hinzufügt És sie in die definierte Plugin-Architektur
  4. Dokumenten- und planen wirklich gut dieses und die anderen werden bald folgen