Pergunta

Eu executo vários sites, todos com uma única instalação do CodeIgniter no meu servidor (diretórios de aplicativos separados e um único diretório de sistema). Isso tem funcionado fabulosamente e não vejo nenhum motivo para mudá -lo neste momento.

Eu me pego escrevendo aulas de biblioteca para estender/substituir o IC o tempo todo e muitas vezes, se encontrar um bug ou melhorar a eficácia, tenho que voltar a vários sites para fazer os mesmos ajustes em risco de um erro de digitação que quebra um dos sites . Por esse motivo, é necessário alterar cada arquivo e testar esse site para bugs.

Eu tenho pensado em uma solução para usar um único diretório de bibliotecas em um local central e simplificando todos os meus sites para esse diretório central. Então, quando eu fizer uma alteração de arquivo, ele se propaga imediatamente para todos os sites a jusante. Ainda exigirá que eu teste cada um por erros, mas não precisarei fazer as alterações várias vezes. Qualquer coisa específica para um único site será um arquivo não compartilhado (ainda no diretório vinculado simplesmente não usado em outro lugar) ou pode ser colocado em um ajudante local.

Além disso, mantenho diretórios separados de 'sistema' da versão CI para que eu possa migrar meus sites de forma independente, se necessário-este arquivo de bibliotecas centrais seria anexado a uma versão específica para reduzir possíveis quebras.

Alguém vê possíveis problemas ou armadilhas ao adotar essa abordagem? Alguém conseguiu isso em outra direção que devo considerar?

Desde já, obrigado!

Foi útil?

Solução

Eu acho que isso realmente faz sentido:] vá em frente. Mesmo na página oficial do CodeIgniter, eles mencionam que é possível.

Além disso, não vejo uma das razões pelas quais deve haver algum problema.

Editar: Eles tocam no problema de vários sites aqui: http://codeigniter.com/user_guide/general/managing_apps.html

também:

http://codeigniter.com/wiki/multiple_applications/
http://www.exclusivetutorials.com/setting-multiple-websites-in-codeigniter-installation/
Como lidar com vários projetos no Codeigniter?
http://codeigniter.com/forums/viewthread/56436/

Outras dicas

Eu tenho um único diretório de sistema e diretórios de aplicativos separados para meus aplicativos de CI. Para compartilhar bibliotecas e alguns modelos de visualização entre meus aplicativos, criei um diretório "comum", na mesma pasta que o sistema de IC e com a mesma estrutura que uma pasta de aplicativos regular e usei symbrinks, mas você pode modificar o carregador Classe para que pareça na pasta comum também. Minha configuração se parece mais disso:

/var/CodeIgniter/
/var/Common/
/var/Common/config/
/var/Common/controllers/
...
/var/Common/libraries/
...
/var/www/someapp/
/var/www/someotherapp/
...

Não tenho certeza de como você lida com a publicação de seus sites (supondo que você realmente faça isso), mas eu procuraria o controle de versão. Por exemplo, no SVN, você pode tornar externo a outro diretório SVN (ou arquivo) e, em seguida, apenas atualize o diretório SVN atual que agarra o arquivo externo. Essa abordagem ganha um benefício dos outros, que é quando você modifica a biblioteca comum, os outros não são afetados imediatamente. Isso impede intervalos indesejados antes de você ter tempo para testar todos os sites usando a biblioteca comum. Você pode apenas atualizar a pasta de cada site sempre que estiver pronto para testar as alterações. Isso é "mais trabalho", mas evita duplicação de código e intervalos indesejados.

Eu escrevi um my_loader para fazer exatamente isso.

http://ellislab.com/forums/viewthread/136321/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top