Dúvidas iniciando com Yii

Pessoal, tudo bem? Sou novo no forum e no desenvolvimento com o Yii. Na verdade eu não programo em PHP já há algum tempo e resolvi que preciso ganhar mais dinheiro e por isso vou desenvolver um CMS pra mim pra poder fazer sites pra outras pessoas e empresas.

Bom eu tenho inicialmente algumas dúvidas sobre a instalação do Yii e sua configuração em um projeto. Eu já brinquei um pouquinho e até rodei o comando yiic webapp blah blah blah…

Entao, minha primeira dúvida é:

1)Vi no tutorial que eu deveria descompactar o framework no diretorio root do meu servidor. Bom, no meu caso eu uso o wampserver e o diretorio root fica em C:\wamp\www . Entao ficaria C:\wamp\www\yii , é isso?

  1. Eu vi um projeto onde o yii fica dentro do projeto. Por exemplo: C:\wamp\www\TESTE\yii. Ou seja, o cara criou o projeto e jogou o framework dentro do projeto.

Bom, enfim, acho que já dá pra entender onde quero chegar. Qual é a melhor localização pra instalar o yii e por que?

Agradeço a ajuda de todos e fico feliz de ver que temos uma comunidade ativa aqui.

nota: Pra ajudar a comunidade a crescer eu vou postar minhas dúvidas aqui e não na comunidade em inglês e fico feliz em anunciar que estarei bem ativo nesta comunidade para ajudar a difundir o yii no brasil.

Abração a todos os brazucas corajosos que como eu abraçaram este framework!!!

Opa, eu tbm fiquei com essa dúvida a algum tempo.

Até então tenho usado o framwork no diretório: C:\wamp\www\yii

O pessoal mais experiente, qual a melhor forma?! :lol:

Pois é Gustavo…a dúvida que fica tb é que se for fazer um deploy em um servidor que não é local, então teríamos que instalar o framework em uma pasta separada, e isso não é uma boa pratica de desenvolvimento…o pessoal mais experiente poderia nos ajudar mesmo, sanando essa dúvida que é na verdade bem básica…hehehehe…

Vamos fazer que nem o Jack. Vamos por partes.

Sim. vai ficar assim como descreveu (eu aconselho deixar nome completo por causa das versões). Esse seu Yii será o mestre para todos os projetos que criar.

Isso pode ser feito desde q se lembre na hora de usar o webapp que tem q ser a partir da pasta TESTE. Nada impede de v trabalhar com + de um framework e querer dividir por pasta ficando assim:

C:\wamp\www\yii\yii-versao\projeto1

C:\wamp\www\yii\yii-versao\projeto2

C:\wamp\www\yii\yii-versao\projetoN

C:\wamp\www\CI\CodeIgniter-versao\projeto1

C:\wamp\www\CI\CodeIgniter-versao\projeto2

C:\wamp\www\CI\CodeIgniter-versao\projetoN

Sacou?

Vc escolhe onde vai instalar desde que seja a partir de C:\wamp\www\. Na minha opinião cada projeto deve ficar dentro da pasra WWW independente se o site foi feito com Yii, Cake ou qq outro framework ou msm na mão.

Espero ter ajudado.

Sobre o deploy, simplesmente peque o conteúdo da pasta do projeto e faz o FTP assim como se faria em um site feito na unha.

Seja bem vindo Matheus.

Pela minha pouca experiência vou responder numa resposta só.

Sobre onde colocar o framework é relativo, hoje temos a versão 1.1.10, para cada atualização de versão, e bom revisar o código e rodar toda a aplicação novamente, para vê se alguma alteração não afeto a versão anterior.

Eu por exemplo, para cada site institucional eu crio uma pasta independente do framework, por que se eu usasse 1 pasta para todos os sites, poderia ocorrer algum erro no projeto que desenvolvi a 1 ano atras. Então eu evito esses tipo de aborrecimento.

Agora se está desenvolvendo 1 sistema de gestão, com vários módulos(diferentes ramos de empresa), ai você pode sar 1 pasta única do framework, por que o sistema base é o de gestão, então sempre o sistema precisa-se manter atualizado com o framework da versão atual.

Como o Cálcio disse, se estiver usando 1 pasta para todos os projetos, renomeia a pasta para yiiframework1.1.10 ou yii.1.1.10 ai vai do seu gosto, para saber qual versão está sendo usada no projeto, e não esquece de alterar o caminho do framework no index.php da pasta root.

Bom essa e minha experiência, observando minhas resposta, digamos que a melhor forma seria ter 1 pasta somente com o nome e versão do framework, ai você evita de copiar a mesma pasta para vários projetos.

Só não remove a pasta, por que pode haver algum projeto seu que esteja usando a versão antiga.

Desculpe estar resgatando esse tópico, mas é q ainda estou na dúvida sobre essa questão.

Não é necessário enviar por FTP tbm a pasta do framework não???

Exemplo do meu diretorio WWW:

[i]C:\wamp\www\yiiframework1.1.10

C:\wamo\www\MeuSistema[/i]

Nesse caso, eu devo fazer FTP das pastas MeuSistema e yiiframework1.1.1 para o servidor? ou Somente a pasta MeuSistema ?

Abraços

Sim, o o diretório do framework também deve ser enviado.

É eu além de jogar a pasta framework eu fiz uma limpeza na msm. (http://www.yiiframework.com/forum/index.php/topic/29368-deploy-site/). Assim vc libera uns megas.

Outra coisa é limpar a pasta assets antes de subir.

Meus maiores problemas agora são com tradução ainda ñ conseguir fazer e a parte do admin q nem com macumba consegui fazer ficar com tema e menu diferente.

Eu comentei na wiki linkada nesse topico, mas também gostaria de saber a opinião de vocês aqui:

Estripar o framework, removendo partes dele, realmente vale a pena para economizar menos de 5mb de espaço?

Eu sou totalmente contra esse tipo de coisa e vocês?

Então,

Eu estava pensando em depenar o framework, mais ai toda a atualização eu teria que fazer o mesmo, e vai lá saber se derrepende uns desses arquivos começa a ser obrigatório o funcionamento.

Eu prefiro deixar do jeito que está, até por que comparando com o Zend, o Yii e 80% menor que o Zend.

Eu acho válida por 2 motivos básicos, deploy e segurança. Deixar código atoa e desnecessário nunca é bom, podem achar vulnerabilidade e tentar explorar em coisa q vc nem usa.

Essa pasta framework hj tem 19.4MB eu consegui deixa-la com 6.1MB são 13,3MB a menos. Hj possui 19.4 amanha pode chegar a 30 ou mais. E esses 13,3MB q tirei foi só do post que o @Newerton postou pra mim. Pois no projeto q estou fazendo pretendo tirar da parte de produção e desabilitar o gii (se for possível) pois só me interessa usar em ambiente de dev e vou deixar só msm o migrations que isso é uma mão na roda.

Sobre as atualizações, ñ acontece a todo instante, então acho q vale a pena esse sacrifício para deixar ele + leve e + seguro. Claro esse é meu ponto de vista. Talvez isso tb seja + válido se vc desenvolve poucos projetos e ñ trabalha em uma fábrica de sites.

@Newerton, se for comparar o Yii com o CI o esqueleto do CI tem 1.4MB (caberia em um disket) Claro ele é mais pelado ñ tem o framework de CSS que o Yii já vem etc, mas basicamente faz oq o Yii faz. E o Cake tem 7.5MB e acho q faz algumas coisas q o Yii faz tb (mas esse ñ conheço tão bem) rs.

Mas é bom ter opiniões diferentes msm.

@Calcio, então você conseguiu bem mais do que está la no wiki. Lá ele diz que diminuiu algo de 10mb pra 5mb. Provavelmente na época que o artigo foi escrito, o framework era menor :P

Fora isso, discordo dos seus motivos. Sinceramente, não vejo como os arquivos removidos (views, templates, arquivos de idiomas etc) representam um risco para a segurança. Acredito que o core do sistema (controllers, activerecord, dao, views) é onde devemos focar a atenção para isso. Se existir alguma brecha, é muito mais provavel que ele apareça nesses itens do que no que foi removido.

Quando ao GII é possível e DEVE ser desabilitado em ambiente de produção.

@davi_alexandre, provavelmente era bem menor msm, mas sobre idiomas sei q ñ representam risco a segurança, mas é desnecessário deixar lá todos os idiomas q ñ vai ser usado. Agora a parte do core sim. Estou usando o projeto q estou desenvolvendo como laboratório e vou tirar coisas como gii tando o modulo como a chama no config/main.php pra ver o impacto pois isso em produção não me interessa. e tentar tirar outras coisas tb.

Se vc ta usando disket, ta num caminho muuuuito errado :lol:.

Falando sério:

Eu acho que remover partes do FW não vai adiantar muito. Na verdade, eu acho que só vai atrapalhar mesmo.

Não sei se vc leu, mas uma das coisas que vc pode fazer pra melhorar a performace, é a utilização do arquivo yiilite.php ao invez do arquivo de bootstrap do Yii normal.

Se vc der uma olhada nele, vai ver todas as classes lá. Tudo junto no mesmo arquivo.

É uma boa técnica pra otimizar o FW, pq gastar mais mem pra manter tudo é menos crítico do que acessar o disco várias vezes pra buscar o que vc precisa.

Eu não sei como é feito a geração deste arquivo, mas suponho que seja algum processo automatizado, então, remover classes que tenham falha de segurança sem remover do yiilite, e, posteriormente tentar otimizar o site vai ser só desperdício de trabalho. Eu, particularmente, sempre coloco em produção com o yiilite.

Usando o PHP como módulo do apache, eu não sei se ele mantem as classes entre as requisições. Com CGI eu tenho certeza que isso não acontece.

Mas sobre a questão de segurança, vc pode deixar apenas o index, assets, js, css e themes (Talvez uma outra pasta pública que vc tenha criado) da sua aplicação dentro do www, fazendo os apontamentos corretos. Controllers, models, e outras classes, não tem necessidade de ficar dentro do www. Eu acho que isso da uma segurança maior.

Valeu Daniel.

Pelo que vi esse yiilite depende tb do APC. Pelo menos foi oq entendi.