Balcms adalah kerangka kerja Zend dan doktrin CMS Powered.
Balcms berbeda dari CMS lain karena kami dapat memperpanjangnya secara langsung dengan hanya menambahkan modul baru - atau bahkan dengan hanya memodifikasi CMS secara langsung (karena CMS hanyalah modul dan serangkaian dependensi). Tidak ada CM lain yang saya tahu benar -benar memungkinkan pengembang untuk memperluas CMS dengan mudah namun secara langsung, biasanya Anda dikunci ke dalam kerangka kerja plugin yang spesifik dan terbatas - yang benar -benar menyedot bola jika Anda mencoba membangun CM yang dapat diskalakan dan diperpanjang untuk aplikasi khusus. Karena itu, jika Anda tidak menyukai sesuatu tentang balcm atau perlu menambahkan fungsionalitas baru, Anda dapat masuk ke sana secara langsung dan melakukannya! Anggap saja sebagai fondasi daripada terkunci. Itu membebaskan! Balcms juga merupakan perangkat lunak yang sangat oportasi, ini mengikuti praktik terbaik secara religius.
Balcms sangat bergantung pada baris perintah. Jika Anda berada di platform UNIX/Mac/Linux, Anda akan menemukan instalasi dan penggunaannya cukup mudah. Jika Anda berada di platform Windows, Anda mungkin menghadapi kurva belajar yang cukup (dan perlu menjalankan perintah melalui terminal Cygwin) - kami sarankan mendapatkan Mac.
Tidak akan pernah ada GUI ujung depan untuk menggantikan ketergantungan pada baris perintah, karena kita melihat ketergantungan ini sebagai dibenarkan sebagai praktik terbaik. Setelah Anda terbiasa dengan itu, Anda lewat. Sekarang itu memberdayakan.
Untuk Windows, Anda perlu menginstal:
Untuk Unix/Mac/Linux Anda perlu menginstal:
Instalasi ini akan memberi Anda persyaratan berikut:
Pertama, kita perlu memastikan bahwa lingkungan Anda dikonfigurasi dengan benar. Untuk menjalankan ini ./cli check-env . Jika tidak mengembalikan pesan kesalahan, maka Anda dapat melanjutkan. Jika ya maka silakan hadir di pesan. Anda mendapatkan pesan yang mengatakan bahwa instalasi git Anda tidak dikonfigurasi, maka cara termudah untuk ./cli check-env Balcms.
Jalankan perintah berikut:
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
Penjelasan: Apa yang kami lakukan di sini adalah membuat direktori situs web baru kami (folder), lalu mengambil antarmuka baris perintah aplikasi kami. Memiliki file ini, kami kemudian dapat menjalankan
./cli birth. Perintah./cli birthsebenarnya terdiri dari tiga tampilan perintah penting lainnya yaitu:
./cli init-newyang menginisialisasi repositori lokal kami (sebagai repositori baru), dan meraih inti CMS./cli configuremana yang mengambil dependensi dan persyaratan CMS dan mengkonfigurasi struktur direktori./cli installyang menginstal database CMS, menyesuaikan izin dan menjalankan pekerjaan cron apa pun.
Kami akan menggunakan perintah ini dan serupa nanti.
Saat itu berjalan, situs web Anda akan membutuhkan repositori git publik atau pribadi sendiri. Anda dapat membuatnya di github (walaupun jika Anda ingin yang pribadi, Anda akan memerlukan akun berbayar), atau Anda dapat menemukan host git pribadi alternatif.
Setelah perintah -perintah itu berjalan, dan repositori git jarak jauh Anda diatur. Kami ingin mengaitkan repositori lokal kami dengan repositori jarak jauh. Kami melakukan ini dengan menyalin URL Read+Write Repository Remote kami, itu seharusnya terlihat seperti [email protected]:balupton/balcms.git . Dengan itu kami akan menjalankan perintah berikut:
git remote add origin {your git repos read/write url} ; make deploy
Penjelasan: Perintah kedua di sini
./cli deployakan mengirimkan perubahan kami dari cabang pengembangan kami ke cabang stabil kami, kemudian dari cabang stabil ke cabangmaster. Akhirnya, kemudian akan mengirim semua perubahan itu ke repositori jarak jauh kami.
Kami ingin mengirim perubahan kami ke repositori jarak jauh karena kami dapat menggunakan server jarak jauh kami (di mana situs web kami akan benar -benar di -host dan diakses). Manfaat lain juga jika lingkungan pengembangan kami macet, kami akan memiliki cadangan jarak jauh. Manfaat terakhir dan mungkin yang terbaik, adalah bahwa jika kita bekerja dengan orang lain, itu memungkinkan kita untuk berkolaborasi bersama dengan mulus.
Setelah semua itu selesai, Anda sekarang dapat mengunjungi situs web BALCMS baru Anda. Jadi mari kita menavigasi ke LocalHost kami dan direktori kami menginstalnya (misalnya http://localhost/sites/mywebsite ).
Untuk memberikan situs web baru Anda, Anda akan pergi ke lokasi admin di situs web Anda (misalnya http://localhost/sites/mywebsite/admin ). Nama pengguna default adalah admin dan kata sandi random - ini ditentukan dalam application/data/fixtures/data.yml , atau Anda dapat mengubahnya dengan menggunakan area administrasi pengguna.
Struktur BALCMS didasarkan pada struktur kerangka kerja zend modular standar dengan ekstensi tambahan untuk konfigurasi dan lokalisasi yang lebih mudah, dengan dukungan untuk tema, unggahan media, pengubah ukuran gambar di luar kotak.
Jadi mari kita lihat strukturnya:
.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.
Jika salah satu dari hal di atas membingungkan, silakan merujuk artikel berikut:
BALCMS memiliki file konfigurasi di lokasi berikut:
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)
File yang Anda minati terutama adalah config.php dan application.yml , kadang -kadang nav.yml . Kecuali jika Anda berencana memperluas balcm untuk menambahkan fungsionalitas khusus, Anda tidak perlu menyentuh file konfigurasi lainnya.
File dokumentasi termasuk dokumentasi inline (dokumen di dalamnya) atau mereka jelas. Proses mengubah editor yang ingin kami gunakan untuk konten kami akan berjalan seperti ini:
application/config/default/application.yml , temukan properti yang sesuai - dalam hal ini editor.code .application/config/application.yml - sedemikian rupa sehingga kami mengedit file konfigurasi kami, bukan yang default../cli clean-config Untuk memastikan perubahan diterapkan-kami mencoba untuk mendeteksi perubahan otomatis, tetapi kepedulian kadang-kadang bisa berguna. Untuk melakukan perubahan Anda, Anda ingin menjalankan perintah berikut:
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)
Penjelasan: Apa yang dilakukan
git statusadalah menunjukkan kepada kami perubahan yang telah kami buat, kami menggunakan ini pertama kali untuk memeriksa perubahan apa yang sedang dilakukan (sehingga kami dapat mengetahui apakah kami ingin melakukan perubahan itu atau tidak). Kita benar -benar dapat melihat perubahan secara detail dengan menjalankangit diff. Kami kemudian menambahkan file yang kami inginkan ke komit berikutnya dengan menggunakangit add. Dalam contoh di atas kami menggunakangit add -ukarena itu akan menyimpan banyak pengetikan, secara otomatis menambahkan perubahan pada semua file yang dilacak (file yang sudah diketahui oleh repositori git). Setelah menjalankangit add -u.
Menyiapkan server langsung dapat dilakukan dengan salah satu dari dua cara berikut.
Opsi yang Disarankan: SSH+GIT. Opsi ini murni luar biasa, cepat, sederhana, mudah digunakan, dan memungkinkan kami untuk mengedit file di server jarak jauh. Meskipun, beberapa server mendukung SSH dan Git (server Anda membutuhkan keduanya) - tetapi manfaatnya sangat besar. Kami merekomendasikan hosting dengan mediatemple karena mereka juga murni luar biasa, sehingga mereka mendukung fitur yang luar biasa ini (rencana mereka juga sangat murah untuk apa yang mereka tawarkan, dukungan fantastis, dan sistem mereka sangat fleksibel dan dapat disesuaikan untuk semua kebutuhan Anda) - sekali lagi, mereka murni luar biasa. Jika server Anda tidak mendukung SSH+GIT, maka itu baik -baik saja, karena kami dapat menggunakan opsi Fallback. Mari kita bahas bagaimana kita akan melakukan ini.
Anda ingin masuk ke server Anda melalui SSH (lihat manual server Anda untuk cara melakukan ini).
Setelah selesai, Anda kemudian ingin cd ke direktori situs web Anda (mis. public_html ).
Direktori ini harus kosong karena kami melakukan instalasi yang bersih (jika tidak kosong, cadangkan, dan kosongkan). Sekarang sudah kosong, kami ingin menjalankan perintah berikut:
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
Penjelasan: Perintah ini harus terlihat sangat mirip dengan perintah instalasi lokal kami, meskipun ada beberapa perbedaan. Kami memulai dengan mengambil CLI kami seperti biasa, meskipun sekarang kami kemudian memanggil
git init, ini memberi tahu lingkungan kami untuk memperlakukan direktori saat ini sebagai repositori git. Kami kemudian melanjutkan untuk mengaitkan direktori kami dengan repositori jarak jauh. Akhirnya kami menjalankan perintah./cli init-existing; ./cli configure; ./cli install. Ini sama seperti sebelumnya, tetapi kali ini kami menjalankan./cli init-existing, bukan./cli init-new-karena kami sekarang memiliki repositori git yang ada yang kami kerjakan (jadi kami hanya mengambilnya), sedangkan sebelum kami harus membuat repositori git dari awal (cabang, struktur, dll).
Anda semua selesai sekarang, situs web Anda sekarang tayang.
Opsi Fallback: Gunakan sistem penempatan pihak ke -3. Opsi ini melibatkan mendaftarkan akun dengan pihak ke -3, menyiapkan repositori git Anda dengan mereka, memberi mereka detail server Anda, dan menentukan pengaturan penyebaran. Ini bagus, tetapi bisa menjadi mahal saat Anda menggunakan beberapa situs dan tidak memungkinkan Anda untuk mengedit file di situs langsung Anda (alih -alih Anda harus melakukan perubahan di situs lokal Anda, kemudian digunakan). Butuh waktu yang adil untuk menggunakan perubahan (dari beberapa menit menjadi beberapa jam). Jika Anda menempuh rute ini, kami sarankan DeployHQ - sistem mereka bekerja dengan sangat baik, dan mereka memiliki harga yang terjangkau. Lihat dokumentasi sistem pilihan Anda untuk cara menggunakan opsi ini.
Opsi konyol: Transfer file secara manual melalui FTP. Alasan opsi ini konyol, adalah bahwa ia mewarisi masalah tidak menggunakan kontrol versi apa pun - Anda dengan cepat berakhir dengan perbedaan antara server langsung Anda dan salinan lokal Anda, menyebabkan ketidakkonsistenan dan debugging dan mimpi buruk pemeliharaan. Tolong jangan gunakan opsi ini, kecuali Anda seorang masokis. Kami tidak akan membahas opsi ini.
Catatan: Sebelum Anda menggunakan situs langsung, Anda harus menambahkan lingkungan produksi ke file config.php Anda, dan mengatur database Anda untuk lingkungan produksi di file application/config/application.yml .
Setelah kami senang dengan salinan lokal kami dan kami ingin menggunakannya ke situs langsung, kami hanya perlu menjalankan perintah yang sudah familiar ./cli deploy di direktori situs web kami.
Setelah kami menggunakan perubahan kami ke repositori Git jarak jauh kami, kami kemudian ingin menarik perubahan itu ke server langsung kami. Ini tergantung pada opsi yang kami pilih.
Menggunakan Opsi Fallback (Sistem Pihak ke -3): Dengan opsi ini, penyebaran dari repositori Git jarak jauh kami ke server langsung kami dapat terjadi secara otomatis, atau kami mungkin perlu masuk ke sistem mereka dan secara manual menggunakan perubahan dan menunggu waktu yang sangat lama.
Menggunakan opsi yang disarankan (SSH+GIT): Kami ingin SSH ke server web dan CD kami ke direktori situs langsung kami (seperti yang kami lakukan ketika kami mengatur repositori git). Setelah ada yang hanya ingin menjalankan perintah ./cli update . Itu akan mengambil semua perubahan terbaru, dan memastikan bahwa konfigurasi kami terkini.
Untuk meningkatkan aplikasi Anda ke versi BALCMS terbaru, Anda hanya perlu menjalankan ./cli upgrade di direktori aplikasi Anda.
Penjelasan: Apa yang akan dilakukan ini adalah mengambil versi balcms terbaru ke dalam cabang Balcms, dan menggabungkannya ke dalam cabang dev kami.
Jika Anda memiliki konflik, Anda dapat menggunakan git mergetool untuk menyelesaikannya.
Setelah semua konflik diselesaikan, dan upgrade berhasil Anda ingin menjalankan ./cli configure untuk memperbarui submodul/dependensi/persyaratan yang kami gunakan.
Pertama, terima kasih telah memilih perangkat lunak ini untuk proyek komersial Anda berikutnya atau bahkan open-source.
Jika Anda ingin memberikan nilai kembali kepada orang -orang di belakang perangkat lunak ini, sama seperti mereka telah memberikan nilai kepada Anda, Anda dapat memberikan kontribusi dengan cara -cara berikut:
Happy Coding :-)