Balcms ist ein Zend -Framework und eine Doktrin von CMS.
Balcms unterscheidet sich von anderen CMS, da wir es direkt erweitern können, indem wir nur ein neues Modul hinzufügen - oder sogar, indem wir das CMS direkt ändern (da das CMS lediglich ein Modul und eine Reihe von Abhängigkeiten ist). Kein anderes CMS, von dem ich kenne, ermöglicht es Entwicklern, das CMS so einfach zu erweitern, und doch direkt sind Sie normalerweise in ein bestimmtes und begrenztes Plugin -Framework gesperrt - was wirklich Bälle saugt, wenn Sie versuchen, ein skalierbares und erweiterbares CMS für benutzerdefinierte Anwendungen zu erstellen. Wenn Sie also nichts über Balcms mögen oder neue Funktionen hinzufügen müssen, können Sie dort direkt hineinkommen und es tun! Stellen Sie sich es eher als Fundament als als Lock-In vor. Es ist befreiend! Balcms ist auch eine hochinteressierte Software, sie folgt den Best Practices religiös.
Balcms ist stark von der Befehlszeile abhängig. Wenn Sie sich auf einer Unix/Mac/Linux -Plattform befinden, finden Sie die Installation und Verwendung ziemlich einfach. Wenn Sie sich auf einer Windows -Plattform befinden, können Sie eine ziemliche Lernkurve ausgesetzt sein (und Befehle über das Cygwin -Terminal ausführen müssen) - wir empfehlen, einen Mac zu erhalten.
Es wird niemals eine GUI an der Frontende geben, um die Abhängigkeit von der Befehlszeile zu ersetzen, da wir diese Abhängigkeit als berechtigt als bewährte Verfahren betrachten. Sobald Sie sich damit vertraut machen, rasen Sie vorbei. Das ist ermächtigend.
Für Windows müssen Sie installieren:
Für Unix/Mac/Linux müssen Sie installieren:
Diese Installationen bieten Ihnen die folgenden Anforderungen:
Zunächst müssen wir sicherstellen, dass Ihre Umgebung korrekt konfiguriert ist. Für diesen Lauf ./cli check-env . Wenn es keine Fehlermeldungen zurückgibt, können Sie fortfahren. Wenn dies der Fall ist, wenden Sie sich bitte an die Nachrichten. Wenn Sie die Nachricht erhalten, dass Ihre Git -Installation nicht konfiguriert ist, dann ist der einfachste Weg, um ein neues kostenloses Konto auf GitHub einzurichten, ein neues ./cli check-env Balcms.
Führen Sie die folgenden Befehle aus:
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
Erläuterung: Wir haben hier unser neues Website -Verzeichnis (Ordner) erstellt und dann die Befehlszeilenschnittstelle unserer Anwendung abrufen. Wenn wir diese Datei haben, können wir dann ausführen
./cli birth. Der Befehl./cli birth
./cli init-new, das unser lokales Repository (als neues Repository) initialisiert und den Kern des CMS greift./cli configuredie Abhängigkeiten und Anforderungen des CMS und konfiguriert die Verzeichnisstruktur./cli installSie die Datenbank des CMS, passen die Berechtigungen an und werden alle Cron -Jobs ausgeführt.
Wir werden diese Befehle und später ähnlich verwenden.
Währenddessen benötigt Ihre Website ihr eigenes öffentliches oder privates Git -Repository. Sie können einen auf GitHub erstellen (wenn Sie einen privaten benötigen, benötigen Sie ein kostenpflichtiges Konto) oder Sie können einen alternativen privaten Git -Host finden.
Sobald diese Befehle ausgeführt wurden und Ihr Remote -Git -Repository eingerichtet ist. Wir möchten unser lokales Repository mit dem Remote -Repository in Verbindung bringen. Wir tun dies, indem wir das Reads -Read -Remote -Repository -URL kopieren. Es sollte ungefähr so aussehen [email protected]:balupton/balcms.git Damit werden wir die folgenden Befehle ausführen:
git remote add origin {your git repos read/write url} ; make deploy
Erläuterung: Der zweite Befehl hier
./cli deploywird unsere Änderungen von unserer Entwicklungszweig zu unserem stabilen Zweig und dann vom stabilen Zweig zummaster-Zweig übertragen. Schließlich wird es dann all diese Änderungen an unser Remote -Repository senden.
Wir möchten unsere Änderungen an das Remote -Repository senden, da wir auf unserem Remote -Server bereitgestellt werden können (wo unsere Website tatsächlich gehostet und zugegriffen wird). Andere Vorteile sind auch für den Fall, dass unsere Entwicklungsumgebung abstimmt. Wir werden eine Remote -Sicherung haben. Der letzte und vielleicht beste Vorteil ist, dass wir, wenn wir mit anderen Menschen zusammenarbeiten, alle nahtlos zusammenarbeiten können.
Sobald alles erledigt ist, können Sie jetzt Ihre neue Balcms -Website besuchen. Lassen Sie uns also zu unserem Localhost und dem Verzeichnis navigieren, in dem wir es installiert haben (z. B. http://localhost/sites/mywebsite ).
Um Ihre neue Website zu verwalten, werden Sie den admin auf Ihrer Website (z. B. http://localhost/sites/mywebsite/admin ) anwenden. Der Standard -Benutzername ist admin und Kennwort ist random . Diese werden in der application/data/fixtures/data.yml angegeben oder Sie können diese mithilfe des Verwaltungsbereichs der Benutzer ändern.
Die Struktur von BALCMS basiert auf der Standard -Struktur der modularen Zend -Framework mit zusätzlichen Erweiterungen für die einfachere Konfiguration und Lokalisierung, mit Unterstützung für Themen, Uploads von Medien und Bild -Größenänderung außerhalb der Box.
Schauen wir uns also die Struktur an:
.gitignore - Used to tell Git about the files that we do not want committed to our repository (e.g. cache files)
.htaccess - Used to tell Apache about how requests should be handled
application/
config/
data/
cache/
database/ - Contains our SQLite Databases
dump/
fixtures/ - Contains our Initial Database Data
logs/
schema/ - Contains our Database Structure
layouts/
models/ - Contains the Models we actually use, these inherit from the models in the following sub-directories
Bal/ - Core models included by the BalPHP Library
Balcms/ - Core models used by BalCMS (these typically inherit the Bal models)
Base/ - Autogenerated by Doctrine ORM
modules/
balcms/
config/ - Our module specific Configuration
controllers/ - Our module specific Business Logic
BackController.php - For our Administration/Back Area
FeedController.php - For our News/RSS/Atom/Subscription Feeds
FrontController.php - For our Public/Front Area
views/ - Our module specific View Logic
helpers/ - Contains our Standard Content Widgets (used within our posts)
scripts/ - Contains our View Scripts
default/ - Contains our Default/Base Modules (used for Error Handling)
cli - BalCMS's Command Line Interface
common/ - Used to contain our submodules/requirements/dependencies used by BalCMS (e.g. zend framework)
config.php
il8n/ - Contains our Localisation/Language files.
index.php
public/
images/
media/
cache/ - Used by the inbuilt bundlers (View Helpers: HeadScriptBundler, HeadLinkBundler)
scripts/
styles/
deleted/ - Where deleted files go (if we don't hard delete them)
image.php - Handles on-the-fly image resizing
images/ - Where the generated/compressed/resized images go
invoices/ - Used for our invoicing functionality (not documented)
uploads/ - Where user uploads go
scripts/
styles/
themes/ - Where our applications themes go, if you want to customise the look and feel of the application, this is where it's at.
albeo/ - The default theme. Creamy green.
balcms/ - The administration theme.
titan - A creamy brown theme.
README.md - This readme that you're reading right now.
robots.txt - What to tell Search Engines. Read up on google.
scripts/ - Contains scripts used by our CLI to perform specific actions
tests/ - Unit tests for our application.
Wenn eines der oben genannten Verwirrungen verwirrend war, verweisen Sie bitte auf die folgenden Artikel:
Balcms hat Konfigurationsdateien an den folgenden Stellen:
config.php - Used detect and set our environment (i.e. development, staging or production).
application/
config/
application.yml - Used to specify the configuration for our environments.
core.yml - Used to specify the paths that our environments will use.
nav.yml - Used to specify navigation items used in our CMS.
routes.yml - Used to specify how requests are directed in our CMS.
default/ - Contains the files that the above config files inherit their config from. Never edit the files in this directory (as they will be overwritten when you do an upgrade).
data/
fixtures/
data.yml - Used to specify the default data that is loaded into our database
schema/
schema.yml - Used to specify our database structure (our models)
Die Dateien, an denen Sie interessiert sind, sind hauptsächlich config.php und application.yml , manchmal nav.yml . Wenn Sie nicht planen, Balcms zu erweitern, um benutzerdefinierte Funktionen hinzuzufügen, müssen Sie die anderen Konfigurationsdateien niemals berühren.
Die Dokumentationsdateien enthalten entweder Inline -Dokumentation (Dokumente in ihnen) oder sie sind selbsterklärend. Der Prozess der Änderung des Editors, den wir für unseren Inhalt verwenden möchten, würde so sein:
application/config/default/application.yml und finden Sie die entsprechende Eigenschaft - In diesem Fall ist es editor.code .application/config/application.yml ein - so dass wir unsere Konfigurationsdatei bearbeiten, nicht die Standardeinstellung../cli clean-config Um Ihre Änderungen zu begehen, möchten Sie die folgenden Befehle ausführen:
cd mywebsite
git status
git add -u
git status
git add {the untracked files reported by the git status}
git commit -m "My Changes... {this is your message}" (note: this commits your changes)
git push origin --all (note: this sends your changes to the remote repository)
Erläuterung: Der
git statuszeigt uns die Änderungen, die wir vorgenommen haben. Wir verwenden dies beim ersten Mal, um zu überprüfen, welche Änderungen vorgenommen werden (damit wir feststellen können, ob wir diese Änderungen vornehmen möchten oder nicht). Wir können die Änderungen im Detail sehen, indem wirgit diffausführen. Wir fügen dann die Dateien hinzu, die wir zum nächsten Commit mitgit addverwenden möchten. Im obigen Beispiel verwenden wirgit add -u, da wir uns viel Tippen sparen. Es fügt die Änderungen automatisch allen verfolgten Dateien hinzu (Dateien, von denen das Git -Repository bereits kennt). Nach dem Ausführen desgit add -u.
Das Einrichten des Live -Servers kann auf einer der folgenden zwei Arten erfolgen.
Empfohlene Option: SSH+Git. Diese Option ist rein großartig, sie ist schnell, einfach und einfach zu bedienen und ermöglicht es uns, Dateien auf dem Remote -Server zu bearbeiten. Nur wenige Server unterstützen sowohl SSH als auch GIT (Ihr Server benötigt beide) - aber die Vorteile sind massiv. Wir empfehlen, mit Mediatemple zu hosten, da auch sie rein fantastisch sind. Sie unterstützen diese reine fantastische Funktion (ihre Pläne sind auch äußerst billig für das, was sie anbieten, Support ist fantastisch und ihr System ist äußerst flexibel und für alle Ihre Bedürfnisse anpassbar) - wieder sind sie rein großartig. Wenn Ihr Server SSH+Git nicht unterstützt, ist das in Ordnung, da wir die Option Fallback verwenden können. Lassen Sie uns darüber abdecken, wie wir das tun werden.
Sie möchten sich über SSH bei Ihrem Server anmelden (finden Sie im Handbuch Ihres Servers, um dies zu tun).
Sobald Sie fertig sind, möchten Sie dann cd in Ihr Websites -Verzeichnis (z. B. public_html ).
Dieses Verzeichnis sollte leer sein, da wir eine saubere Installation durchführen (wenn es nicht leer ist, sichern Sie es und leeren Sie es). Jetzt, wo es leer ist, möchten wir die folgenden Befehle ausführen:
curl -OL http://github.com/balupton/balcms/raw/master/cli
git init
git remote add origin {your git repos read/write url}
./cli init-existing; ./cli configure; ./cli install
Erläuterung: Diese Befehle sollten unseren lokalen Installationsbefehlen sehr ähnlich aussehen, obwohl es einige Unterschiede gibt. Wir beginnen damit, dass wir unsere CLI wie üblich abrufen, obwohl wir jetzt
git initnennen, dies sagt unserer Umgebung an, das aktuelle Verzeichnis als Git -Repository zu behandeln. Anschließend verbinden wir unser Verzeichnis dem Remote -Repository. Schließlich führen wir die Befehle aus./cli init-existing; ./cli configure; ./cli install. Dies ist das gleiche wie zuvor, aber diesmal laufen wir./cli init-existing, anstelle von./cli init-new-Da wir jetzt ein vorhandenes Git-Repository haben, mit dem wir arbeiten (also holen wir es einfach), während wir das Git-Repository (IT-Zweige, Struktur usw.) erstellen mussten.
Sie sind jetzt alle fertig, Ihre Website ist jetzt live.
Fallback -Option: Verwenden Sie ein Bereitstellungssystem von Drittanbietern. Diese Option umfasst die Registrierung eines Kontos mit einer Drittanbieter, der Einrichtung Ihres Git -Repositorys, der Angabe Ihrer Serverdetails und der Angabe der Bereitstellungseinstellungen. Es ist schön, kann aber teuer werden, wenn Sie auf mehreren Websites bereitstellen, und es ermöglicht Ihnen nicht, Dateien auf Ihrer Live -Site zu bearbeiten (stattdessen müssen Sie die Änderung auf Ihrer lokalen Website vornehmen und dann bereitstellen). Es kann auch eine faire Zeit dauern, um Änderungen einzusetzen (von wenigen Minuten bis ein paar Stunden). Wenn Sie diese Route gehen, empfehlen wir DeployHQ - ihr System funktioniert sehr gut und sie haben erschwingliche Preise. Weitere Informationen finden Sie in der Dokumentation Ihres ausgewählten Systems, um diese Option zu verwenden.
Dumme Option: Übertragen Sie die Dateien manuell über FTP. Der Grund, warum diese Option albern ist, ist, dass sie die Probleme erbt, keine Versionskontrolle zu verwenden - Sie haben schnell Unstimmigkeiten zwischen Ihrem Live -Server und Ihrer lokalen Kopie, was zu Inkonsistenz- und Debugging- und Wartungs -Albträumen führt. Bitte verwenden Sie diese Option nicht, es sei denn, Sie sind ein Masochist. Wir werden diese Option nicht abdecken.
Hinweis: Bevor Sie auf der Live -Site bereitgestellt werden, müssen Sie Ihrer Datei config.php eine Produktionsumgebung hinzugefügt und Ihre Datenbank für die Produktionsumgebung in der Datei application/config/application.yml einrichten.
Sobald wir mit unserer lokalen Kopie zufrieden sind und sie auf der Live -Site bereitstellen möchten, müssen wir nur den bereits bekannten Befehl ausführen ./cli deploy in unserem Websites -Verzeichnis.
Sobald wir unsere Änderungen in unserem Remote -Git -Repository bereitgestellt haben, möchten wir diese Änderungen auf unseren Live -Server abrufen. Dies hängt von der Option ab, die wir gewählt haben.
Verwenden der Fallback -Option (System Drittanbieter): Mit dieser Option kann die Bereitstellung von unserem Remote -Git -Repository auf unseren Live -Server entweder automatisch stattfinden, oder wir müssen uns möglicherweise bei ihrem System anmelden und die Änderungen manuell bereitstellen und sehr lange warten.
Verwenden der empfohlenen Option (SSH+GIT): Wir möchten SSH in unserem Webserver und CD in unserem Live -Websites -Verzeichnis (wie wir das Git -Repository einrichten). Sobald es einfach den Befehl ./cli update ausführen möchte. Dies holt alle jüngsten Änderungen ab und stellt sicher, dass unsere Konfiguration aktuell ist.
Um Ihre Anwendung auf die neueste Balcms -Version zu aktualisieren, müssen Sie nur ./cli upgrade im Verzeichnis Ihrer Anwendung ausführen.
Erläuterung: Was dies tun wird, ist, die neueste Balcms -Version in den Balcms -Zweig zu holen und sie in unseren Entwicklerzweig zu verschmelzen.
Wenn Sie Konflikte haben, können Sie mit git mergetool diese aussortieren.
Sobald alle Konflikte gelöst sind und das Upgrade erfolgreich ausgeführt wurde, sollten Sie ausführen ./cli configure
Erstens vielen Dank, dass Sie diese Software für Ihr nächstes kommerzielles oder sogar Open-Source-Projekt ausgewählt haben.
Wenn Sie denjenigen, die hinter dieser Software hinter sich haben, einen Wert zurückgeben möchten, genauso wie sie Ihnen einen Wert gegeben haben, tragen Sie auf folgende Weise dazu bei:
Happy Coding :-)