2016-03-29 5 views
0

Ich erstelle eine Template-Bibliothek für einen Client. Das Ziel der Bibliothek ist es, eine standardisierte Hülle für alle Websites, die das Unternehmen besitzt, bereitzustellen. Andere Entwickler sollten die Bibliothek mit Composer importieren können, und eine Basisvorlage mit ein paar Zeilen Code erstellen, z.B .:Erstellen einer PHP-Bibliothek für Composer mit öffentlichen Ressourcen

$Template = new Template; 
$Template->setContent('Hello world!'); 
$Template->render(); 

Dadurch wird der Inhalt innerhalb der standardisierten Schale zu machen. Dies ist ein vereinfachtes Beispiel, die Bibliothek bietet viel mehr Funktionen wie standardisierte Schieberegler, Menüs usw.

Diese Bibliothek hängt von Zweig ab, aber es hängt auch von einer Reihe von Front-End-Assets ab; wie benutzerdefinierte Bilder, Javascripts, CSS und 3rd Party Sachen wie Jquery und Bootstrap CSS. Diese Assets werden im Ordner/assets/gespeichert.

Nach der Installation der Bibliothek mit Composer wird alles im Ordner/vendors/gespeichert, der sich im Stammverzeichnis der Website befindet. Der Ordner/assets/muss jedoch in/public_html/verfügbar sein.

Die Lösung für jetzt: Kopieren Sie einfach den Ordner/assets/in die/public_html /. Aber ich bin mir sicher, dass es je nach Front-End-Assets mehr Repositories gibt. Wie können diese Assets am häufigsten in/public_html/bereitgestellt werden?

Antwort

0

Das letzte, was mir in den Sinn kommt, ist das Symfony2 Bundle-System. Jedes von Ihnen definierte Bündel muss im AppKernel registriert sein. Wenn das Paket Elemente enthält, die unter dem Ordner/web/bundles/short_bundle_name/verknüpft oder kopiert werden.

Damit Sie die Ressourcen Ihrer Abhängigkeiten verfolgen können, benötigen Sie eine Art Registrierungsmechanismus, damit Sie registrieren können, welche Bibliotheken Assets haben, die über den Ordner public_html kopiert/verlinkt werden müssen.

Denken Sie auch daran, mit assetic Ihre einfachen Assets (Zusammenführen, Umschreiben und andere Filter) mit Cache-Busting-Funktionen zu verarbeiten.

0

Sie können eine Kombination aus Composer für Backend-Abhängigkeiten und Bower für Ihr Frontend und Grunt verwenden, um Dateien zu verschieben und zu verarbeiten.

mit Composer fügen Sie Folgendes zu Ihrer composer.json

"scripts": { 
    "post-install-cmd": [ 
     "bower install", 
     "grunt" 
    ], 
    "post-update-cmd": [ 
     "bower install", 
     "grunt" 
    ] 
} 

Und dann haben Sie Sie grundlegende Bower Skript bowser.json

{ 
    "name": "my/project", 
    "dependencies": { 
     "jquery": "*", 
     "bootstrap": "*" 
    } 
} 

Und dann haben Sie Sie grundlegende Grunt Skript gruntfile.js, wo Sie diese verwenden könnten (https://github.com/gruntjs/grunt-contrib-copy) so.

copy: { 
    main: { 
    expand: true, 
    src: 'src/*', 
    dest: 'dest/', 
    }, 
}, 

Jetzt müssen Sie nur Ihre Composer-Befehle ausführen, um alle Ihre Dateien zu installieren oder zu aktualisieren.

Hinweis: Sie müssen nicht Bower verwenden, wenn Sie alle Ihre Vermögenswerte sind in Composer

Verwandte Themen