BALCMSはZend FrameworkとDoctrine ORM搭載のCMSです。
BALCMSは、新しいモジュールを追加するだけで直接拡張できるため、CMSを直接変更するだけで直接拡張できるため、他のCMSとは異なります(CMSは単なるモジュールと一連の依存関係であるため)。私が知っている他のCMは、実際に開発者がCMSを非常に簡単に、しかし直接拡張できるようにすることはできません。通常、特定の限られたプラグインフレームワークにロックされています。そのため、BALCMSについて何かが気に入らないか、新しい機能を追加する必要がない場合は、直接入ることができてそれを行うことができます!ロックインではなく、より多くの基盤と考えてください。解放されています! BALCMSは非常に意見の高いソフトウェアでもあり、宗教的にベストプラクティスに従います。
BALCMSは、コマンドラインに大きく依存しています。 UNIX/MAC/Linuxプラットフォームを使用している場合は、インストールと使用が非常に簡単になります。 Windowsプラットフォームにいる場合は、かなりの学習曲線に直面する可能性があります(Cygwinターミナルを介してコマンドを実行する必要があります) - Macを取得することをお勧めします。
この依存関係は、ベストプラクティスであると正当化されていると考えているため、コマンドラインへの依存関係を置き換えるフロントエンドGUIはありません。あなたがそれに精通したら、あなたはそばにいます。今、それは力を与えています。
Windowsの場合は、インストールする必要があります。
Unix/Mac/Linuxの場合、インストールする必要があります。
これらのインストールは、次の要件を提供します。
まず、環境が正しく構成されていることを確認する必要があります。この実行のために./cli check-env 。エラーメッセージが返されない場合は、続行できます。もしそうなら、メッセージに出席してください。 gitインストールが構成されていないというメッセージが表示された場合、それを構成する最も簡単な方法は、githubで新しいフリーアカウントを設定し、新しいリポジトリを作成し、リポジトリの使用とセットアップの指示に従ってください - gitインストールが構成されたら、実行してください./cli check-envバルクス。
次のコマンドを実行します。
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
説明:ここで行っているのは、新しいWebサイトディレクトリ(フォルダー)を作成し、アプリケーションのコマンドラインインターフェイスを取得することです。このファイルを使用すると、
./cli birth実行できます。./cli birthコマンドは、実際には次の3つの他のビューの重要なコマンドで構成されています。
./cli init-newローカルリポジトリ(新しいリポジトリとして)を初期化し、CMSのコアをつかむ./cli configureCMSの依存関係と要件を取得し、ディレクトリ構造を構成する./cli installCMSのデータベースをインストールし、アクセス許可を調整し、CRONジョブを実行します。
これらのコマンドを使用して、後で同様に使用します。
それが実行されている間、あなたのウェブサイトはそれが独自のパブリックまたはプライベートGitリポジトリを必要とします。 GitHubで作成することができます(ただし、プライベートなアカウントが必要な場合は有料アカウントが必要です)、または代替のプライベートGitホストを見つけることができます。
これらのコマンドが実行され、リモートGitリポジトリが設定されます。ローカルリポジトリをリモートリポジトリに関連付けます。これは、リモートリポジトリの読み取り+書き込みURLをコピーすることで行います。これは、この[email protected]:balupton/balcms.gitのように見えるはずです。それにより、次のコマンドを実行します。
git remote add origin {your git repos read/write url} ; make deploy
説明:ここの2番目のコマンド
./cli deploy、開発ブランチから安定したブランチから安定したブランチからmasterブランチに変更を送信します。最後に、これらすべての変更をリモートリポジトリに送信します。
リモートサーバーに展開できるため、変更をリモートリポジトリに変更したいと考えています(実際にWebサイトがホストされ、アクセスされる場合)。他の利点も、開発環境がクラッシュした場合にも、リモートバックアップがあります。最後の利点とおそらく最高の利点は、私たちが他の人と協力している場合、私たちがすべてシームレスに協力できるようになることです。
それがすべて完了したら、新しいBALCMS Webサイトにアクセスできるようになりました。そのため、LocalHostとインストール( http://localhost/sites/mywebsite )に移動します。
新しいWebサイトを管理するには、Webサイト( http://localhost/sites/mywebsite/adminなど)のadmin場所に移動します。デフォルトのユーザー名はadminであり、パスワードはrandomです - これらは構成ファイルapplication/data/fixtures/data.ymlで指定されています。または、ユーザー管理領域を使用して変更できます。
BALCMSの構造は、テーマ、メディアのアップロード、画像のサイズ変更をサポートするための追加の拡張機能を備えた追加の拡張機能を備えた標準のモジュラーZendフレームワーク構造に基づいています。
それでは、構造を見てみましょう。
.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.
上記のいずれかが混乱している場合は、次の記事を参照してください。
BALCMSには、次の場所に構成ファイルがあります。
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)
興味のあるファイルは、主にconfig.phpおよびapplication.yml 、時にはnav.yml 。 BALCMSを拡張してカスタム機能を追加する予定がない限り、他の構成ファイルにタッチする必要はありません。
ドキュメントファイルには、インラインドキュメント(内部のドキュメント)が含まれるか、自明です。コンテンツに使用したいエディターを変更するプロセスは、次のようになります。
application/config/default/application.ymlを確認し、適切なプロパティを見つけます - この場合、 editor.codeです。application/config/application.ymlの適切な環境にプロパティを挿入します。これにより、デフォルトのファイルではなく構成ファイルを編集します。./cli clean-configを実行して、変更が適用されるようにします - 変更を自動検出しようとしますが、ペダンティックは時々役に立つことがあります。 変更をコミットするには、次のコマンドを実行する必要があります。
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)
説明:
git statusが行うことは、私たちが行った変更を示すことです。これを初めて使用して、どのような変更が行われているかを確認します(そのため、それらの変更を行うかどうかわかります)。git diff実行することにより、実際に変更を詳細に確認できます。次に、git add使用して、次のコミットに必要なファイルを追加します。上記の例ではgit add -uを使用します。これにより、多くのタイピングが節約され、すべての追跡されたファイル(GITリポジトリがすでに知っているファイル)に変更を自動的に追加します。git add -u実行した後。
ライブサーバーのセットアップは、次の2つの方法のいずれかで実行できます。
推奨オプション: SSH+GIT。このオプションは純粋に素晴らしく、スピーディでシンプルで、使いやすく、リモートサーバー上のファイルを編集することができます。ただし、SSHとGITの両方をサポートするサーバーはほとんどありません(サーバーには両方が必要です)が、利点は非常に大きいです。 Mediatempleも純粋に素晴らしいのでホスティングをお勧めします。そのため、この純粋な素晴らしい機能をサポートしています(彼らの計画は提供するものについても非常に安く、サポートは素晴らしく、彼らのシステムは非常に柔軟であり、すべてのニーズに合わせてカスタマイズ可能です) - 再び、彼らは純粋な素晴らしいです。サーバーがSSH+GITをサポートしていない場合は、フォールバックオプションを使用できるため、問題ありません。これをどのように行うかについて説明しましょう。
SSHを介してサーバーにログインすることをお勧めします(これを行う方法については、サーバーのマニュアルを参照してください)。
完了したら、Webサイトディレクトリ(例: public_html )にcd作成する必要があります。
このディレクトリは、クリーンなインストールを行っているため空にする必要があります(空になっていない場合は、バックアップして空にします)。空になったので、次のコマンドを実行します。
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
説明:これらのコマンドは、いくつかの違いがありますが、ローカルインストールコマンドと非常によく似ている必要があります。私たちは通常と同じようにCLIを取得することから始めますが、今では
git initを呼び出しますが、これは環境に現在のディレクトリをGitリポジトリとして扱うように指示します。次に、ディレクトリをリモートリポジトリに関連付けます。最後に、コマンドを実行します./cli init-existing; ./cli configure; ./cli install。これは以前と同じですが、今回は./cli init-newの代わりに./cli init-existingを実行します。これは、現在作業している既存のGITリポジトリを持っているため(我々はそれをフェッチするだけです)、ゼロからGITリポジトリを作成する前に(ブランチ、構造など)。
あなたはすべて今完成しました、あなたはウェブサイトが今ライブです。
フォールバックオプション:サードパーティの展開システムを使用します。このオプションでは、アカウントをサードパーティに登録し、Gitリポジトリを設定し、サーバーの詳細を提供し、展開設定を指定することが含まれます。それは素晴らしいことですが、複数のサイトに展開しているときにコストがかかり、ライブサイトでファイルを編集することはできません(代わりに、ローカルサイトで変更を加えてから展開する必要があります)。また、変更を展開するために(数分から数時間)公平になることもあります。このルートに行く場合は、DeployHQをお勧めします。システムは非常にうまく機能し、手頃な価格を持っています。このオプションの使用方法については、選択したシステムのドキュメントを参照してください。
愚かなオプション: FTPを介してファイルを手動で転送します。このオプションがばかげている理由は、バージョン制御を使用しないという問題を継承しているからです。ライブサーバーとローカルコピーの間に矛盾がすぐにあり、矛盾とデバッグとメンテナンスの悪夢を引き起こします。あなたがマゾヒストでない限り、このオプションを使用しないでください。このオプションはカバーしません。
注:ライブサイトに展開する前に、 config.phpファイルに実稼働環境を追加し、 application/config/application.ymlファイルで生産環境のデータベースを設定する必要があります。
地元のコピーに満足し、ライブサイトに展開したい場合は、Webサイトディレクトリに既に馴染みのあるコマンド./cli deployを実行する必要があります。
変更をリモートGITリポジトリに展開したら、これらの変更をライブサーバーに引き込みます。これは、選択したオプションによって異なります。
フォールバックオプションの使用(サードパーティシステム):このオプションを使用すると、リモートGitリポジトリからライブサーバーへの展開が自動的に発生するか、システムにログインして変更を手動で展開して非常に長い時間を待つ必要がある場合があります。
推奨オプションを使用して(SSH+GIT):WebサーバーにSSHを、CDをライブサイトディレクトリにSSHにします(GITリポジトリをセットアップしたときと同様)。 Command./CLI ./cli updateを単純に実行するだけです。これにより、最近のすべての変更が取得され、構成が最新であることが確認されます。
アプリケーションを最新のBALCMSバージョンにアップグレードするには、アプリケーションのディレクトリで./cli upgradeを実行するだけです。
説明:これが行うのは、最新のBALCMSバージョンをBALCMSブランチにフェッチし、開発ブランチにマージすることです。
競合がある場合は、 git mergetool使用して整理できます。
すべての競合が解決され、アップグレードが正常に実行されたら、実行する./cli configure 、使用するサブモジュール/依存関係/要件を更新します。
まず、次のコマーシャルまたはオープンソースプロジェクトのためにこのソフトウェアを選択していただきありがとうございます。
このソフトウェアの背後にある人々に何らかの価値を返したい場合は、彼らがあなたに価値を与えているのと同じように、次の方法で貢献することができます。
ハッピーコーディング:-)