O BALCMS é uma estrutura ZEND e CMS de doutrina ORM.
O BALCMS é diferente de outros CMSs, pois podemos estendê -lo diretamente adicionando um novo módulo - ou mesmo apenas modificando o CMS diretamente (pois o CMS é apenas um módulo e uma série de dependências). Nenhum outro CMS que eu conheço realmente permite que os desenvolvedores estendam o CMS com tanta facilidade e ainda diretamente, geralmente você está bloqueado em uma estrutura de plug -in específica e limitada - o que realmente suga bolas se você estiver tentando criar um CMS escalável e extensível para aplicativos personalizados. Como tal, se você não gosta de algo sobre Balcms ou precisa adicionar novas funcionalidades, você pode entrar diretamente lá e fazê -lo! Pense mais como uma base do que como um bloqueio. É libertador! O BALCMS também é um software altamente opinativo, segue as melhores práticas religiosamente.
O BALCMS depende fortemente da linha de comando. Se você estiver em uma plataforma UNIX/MAC/Linux, encontrará a instalação e o uso bastante simples. Se você estiver em uma plataforma do Windows, poderá enfrentar uma curva de aprendizado (e precisar executar comandos através do terminal Cygwin) - sugerimos obter um Mac.
Nunca haverá uma GUI do front -end para substituir a dependência da linha de comando, pois vemos essa dependência como justificada como uma prática recomendada. Depois de se familiarizar com isso, você zomba. Agora isso é empoderador.
Para o Windows, você precisará instalar:
Para Unix/Mac/Linux, você precisará instalar:
Essas instalações fornecerão os seguintes requisitos:
Em primeiro lugar, precisaremos garantir que seu ambiente esteja configurado corretamente. Para esta execução ./cli check-env . Se não retornar nenhuma mensagem de erro, você poderá prosseguir. Se isso acontecer, atenda as mensagens. If you get the message saying that your git installation is not configured, then the easiest way to configure it is to setup a new free account on GitHub, create a new repository with them, follow their instructions on using and setting up the repository - once done your git installation will have been configured, so run ./cli check-env again and make sure that there is nothing else it finds, if it doesn't find anything, then woohoo and we can now proceed to Instalando BALCMs.
Execute os seguintes comandos:
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
Explicação: O que estamos fazendo aqui é criar nosso novo diretório de sites (pasta) e, em seguida, buscar a interface da linha de comando do nosso aplicativo. Tendo esse arquivo, podemos então executar
./cli birth. O comando./cli birthé realmente composto por três outros comandos importantes que são:
./cli init-new, que inicializa nosso repositório local (como um novo repositório) e agarra o núcleo do CMS./cli configurequal busca as dependências e requisitos do CMS e configura a estrutura do diretório./cli installque instala o banco de dados do CMS, ajusta as permissões e executa quaisquer trabalhos cron.
Usaremos esses comandos e similares mais tarde.
Enquanto isso estiver em execução, seu site precisará de seu próprio repositório público ou privado. Você pode criar um no Github (embora, se desejar um privado, precisará de uma conta paga) ou encontrar um host do GIT privado alternativo.
Depois que esses comandos são executados e seu repositório Git remoto é configurado. Queremos associar nosso repositório local ao repositório remoto. Fazemos isso copiando o URL Read+Write do Repositório Remoto, ele deve se parecer com algo como este [email protected]:balupton/balcms.git . Com isso, executaremos os seguintes comandos:
git remote add origin {your git repos read/write url} ; make deploy
Explicação: O segundo comando aqui
./cli deployenviará nossas alterações de nossa filial de desenvolvimento para nossa filial estável e depois da filial estável para a filialmaster. Finalmente, enviará todas essas alterações ao nosso repositório remoto.
Queremos enviar nossas alterações para o repositório remoto, pois podemos implantar em nosso servidor remoto (onde nosso site será realmente hospedado e acessado). Outros benefícios também estão, caso nosso ambiente de desenvolvimento falhe, teremos um backup remoto. O último benefício e talvez o melhor é que, se estamos trabalhando com outras pessoas, isso nos permite colaborar juntos sem problemas.
Quando tudo estiver pronto, agora você poderá visitar seu novo site da Balcms. Então, vamos navegar para o nosso localhost e o diretório em que o instalamos (por exemplo http://localhost/sites/mywebsite ).
Para administrar seu novo site, você irá para o local admin no seu site (por exemplo http://localhost/sites/mywebsite/admin ). O nome de usuário padrão é admin e a senha é random - eles são especificados no application/data/fixtures/data.yml , ou você pode alterá -los usando a área de administração de usuários.
A estrutura do BALCMS é baseada na estrutura modular do Zend Framework padrão com extensões adicionais para facilitar a configuração e a localização, com suporte para temas, uploads de mídia, redimensionamento de imagens para fora da caixa.
Então, vamos dar uma olhada na estrutura:
.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.
Se algum dos itens acima foi confuso, faça referência aos seguintes artigos:
O BALCMS possui arquivos de configuração nos seguintes locais:
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)
Os arquivos nos quais você estará interessado são principalmente config.php e application.yml , às vezes nav.yml . A menos que você planeje estender o BALCMS para adicionar funcionalidade personalizada, você nunca precisará tocar nos outros arquivos de configuração.
Os arquivos de documentação incluem documentação embutida (documentos dentro deles) ou são auto -explicativos. O processo de alteração do editor que gostaríamos de usar para o nosso conteúdo seria assim:
application/config/default/application.yml , encontre a propriedade apropriada - nesse caso, é editor.code .application/config/application.yml - de modo que estamos editando nosso arquivo de configuração, não o padrão../cli clean-config para garantir que a alteração seja aplicada-tentamos de detectar automaticamente as alterações, mas às vezes pode ser útil. Para cometer suas mudanças, você deseja executar os seguintes comandos:
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)
Explicação: O que o
git statusfaz é nos mostrar as alterações que fizemos, usamos isso na primeira vez para verificar quais alterações estão sendo feitas (para que possamos dizer se queremos ou não fazer essas alterações). Na verdade, podemos ver as mudanças em detalhes executandogit diff. Em seguida, adicionamos os arquivos que queremos ao próximo comprometimento usandogit add. No exemplo acima, usamosgit add -upois isso nos salvará muito digitação, ele adiciona automaticamente as alterações a todos os arquivos rastreados (arquivos que o repositório Git já conhece). Depois de executar ogit add -u.
A configuração do servidor ao vivo pode ser feita por qualquer uma das duas maneiras a seguir.
Opção recomendada: ssh+git. Esta opção é puramente impressionante, é rápida, simples, fácil de usar e nos permite editar arquivos no servidor remoto. Embora poucos servidores suportem SSH e GIT (seu servidor precisa de ambos) - mas os benefícios são enormes. Recomendamos hospedar com o Mediatemple, pois eles também são puros, para que eles suportem esse recurso puro incrível (seus planos também são extremamente baratos para o que eles oferecem, o suporte é fantástico e seu sistema é extremamente flexível e personalizável para todas as suas necessidades) - novamente, eles são pura. Se o seu servidor não suportar SSH+Git, tudo bem, pois podemos usar a opção Fallback. Vamos cobrir como faremos isso.
Você deseja fazer login no seu servidor via SSH (consulte o manual do seu servidor para como fazer isso).
Uma vez feito, você desejará cd no diretório de sites (por exemplo, public_html ).
Este diretório deve estar vazio, pois estamos fazendo uma instalação limpa (se não estiver vazia, faça backup e esvazie -o). Agora que está vazio, queremos executar os seguintes comandos:
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
Explicação: Esses comandos devem se parecer bastante semelhantes aos nossos comandos de instalação local, embora existam algumas diferenças. Começamos buscando nossa CLI como de costume, embora agora chamamos
git init, isso diz ao nosso ambiente para tratar o diretório atual como um repositório Git. Em seguida, continuamos a associar nosso diretório ao repositório remoto. Finalmente, executamos os comandos./cli init-existing; ./cli configure; ./cli install. É o mesmo de antes, mas desta vez executamos./cli init-existing, em vez de./cli init-new-como agora temos um repositório Git existente com o qual estamos trabalhando (assim, apenas buscamos), enquanto antes que tivéssemos que criar o repositório Git a partir do zero (sua estrutura, estrutura, etc.).
Você está pronto agora, seu site agora está ao vivo.
Opção Fallback: use um sistema de implantação de terceiros. Esta opção envolve o registro de uma conta com uma terceira parte, configuração do seu repositório Git com eles, dando -lhes detalhes do servidor e especificando as configurações de implantação. É bom, mas pode ficar caro quando você está implantando para vários sites e não permite que você edite arquivos no seu site ao vivo (em vez disso, você precisa fazer a alteração no site local e implantar). Também pode demorar um pouco para implantar alterações (de alguns minutos a algumas horas). Se você seguir esse caminho, recomendamos a implantação - o sistema deles funciona muito bem e eles têm preços acessíveis. Consulte a documentação do sistema escolhido sobre como usar esta opção.
Opção boba: transfira manualmente os arquivos sobre o FTP. A razão pela qual essa opção é boba é que ele herda os problemas de não usar nenhum controle de versão - você acaba rapidamente com discrepâncias entre o servidor ao vivo e sua cópia local, causando inconsistências e pesadelos de depuração e manutenção. Por favor, não use esta opção, a menos que você seja masoquista. Não abordaremos esta opção.
Nota: Antes de implantar no site ao vivo, você precisará adicionar um ambiente de produção ao seu arquivo config.php e configurar seu banco de dados para o ambiente de produção no arquivo application/config/application.yml .
Depois de ficarmos felizes com nossa cópia local e queremos implantá -la no site ao vivo, precisamos executar o comando já familiar ./cli deploy em nosso diretório de sites.
Depois de implantarmos nossas alterações em nosso repositório Git remoto, desejaremos puxar essas alterações em nosso servidor ao vivo. Isso depende da opção que escolhemos.
Usando a opção Fallback (sistema de terceiros): com esta opção, a implantação do nosso repositório Git remoto para o nosso servidor ao vivo pode acontecer automaticamente, ou podemos precisar fazer login no sistema e implantar manualmente as alterações e esperar muito tempo.
Usando a opção recomendada (ssh+git): queremos que o SSH em nosso servidor da web e CD em nosso diretório de sites ao vivo (como fizemos quando configuramos o repositório Git). Uma vez que desejar simplesmente executar o comando ./cli update . Isso buscará todas as alterações recentes e garantirá que nossa configuração esteja atualizada.
Para atualizar seu aplicativo para a versão mais recente do BALCMS, você só precisará executar ./cli upgrade no diretório do seu aplicativo.
Explicação: O que isso fará é buscar a versão mais recente da Balcms na filial do BALCMS e mesclá -la em nossa filial de desenvolvimento.
Se você tiver algum conflito, poderá usar git mergetool para resolvê -los.
Depois que todos os conflitos forem resolvidos e a atualização foi com sucesso, você desejará executar ./cli configure para atualizar quaisquer submódulos/dependências/requisitos que usamos.
Em primeiro lugar, obrigado por escolher este software para o seu próximo projeto comercial ou mesmo de código aberto.
Se você quiser devolver algum valor para os que estão por trás deste software, assim como eles lhe deram valor, você pode fazer contribui das seguintes maneiras:
Codificação feliz :-)