Pergunta

Eu estou procurando conselhos, tutoriais e links na como configurar uma aplicação web de médio porte com Kohana 3. Eu tenho implementado padrões MVC no passado, mas nunca funcionou contra um framework MVC "formalizada" assim que eu sou ainda obter minha cabeça em torno da terminologia -. brincando ao redor com exemplos básicos, a construção de pontos de vista e modelos, e assim por diante

Estou progredindo razoavelmente bem, mas eu quero criar um projeto de web do mundo real (um dos meus próprios que eu estive planejando por algum tempo agora) como um objeto de aprendizagem.

I aprendem melhor pelo exemplo, mas a documentação baseada exemplo é uma escassa pouco para Kohana 3 agora - eles dizem isso a si mesmos no site. Enquanto eu não estou preocupado sobre a aprendizagem do quadro como eu ir junto, eu quero certificar-se da base de código é saudável estruturado desde o início - ou seja, os controladores são divididos muito bem, com o nome bem e de acordo com padrões, e mais importante ainda a lógica de negócios é separada em modelos de tamanho apropriado.

Meu aplicativo poderia, na sua essência, ser descrito como um diretório de negócio com uma gama de funções de listagem de pesquisa e, e uma área de login para cada proprietário de entrada. O banco de dados backend administrativa real já é cuidado.

Supondo que eu tenho todo o API funcionou e no lugar já - lista de todas as empresas, editar negócios, lista de empresas por nome da rua, criar oferta logado como negócio, e assim por diante, e eu estou apenas procurando como ajuste a funcionalidade em um padrão MVC e para uma estrutura de aplicação Kohana que pode ser facilmente estendido.

  • Você sabe exemplos da vida real de "database-pesados" aplicações como diretórios, comunidades on-line ... com um log-in área construída em Kohana 3, de preferência Open Source para que eu pudesse dar uma olhada como eles faça?

  • Existem convenções ou melhores práticas sobre como estruturar uma área de login prorrogável por usuários finais em um projeto Kohana que não só é capaz de lidar com uma página anuário de negócio, mas outros produtos em páginas separadas, bem como?

  • Você conhece algum bons recursos na construção de aplicações complexas com Kohana?

  • Você construiu algo semelhante e poderia me dar recomendações sobre uma estrutura de projeto?

Recompensa

Eu estou concedendo a recompensa para @antpaw porque ele me proporcionou uma aplicação Kohana com alguma lógica de negócios que está me dando um monte de exemplos. Felicidades @Pixel desenvolvedor para o seu excelente entrada bem - como tantas vezes, eu desejo que se poderia dividir uma recompensa

Foi útil?

Solução

Gostaria de usar o módulo de autenticação que vem com kohana para o login. Isto lhe dará a mesa de papéis, onde você pode configurar as opções possíveis de permissão e relacionando-os com os usuários mais tarde. Depois disso, você pode verificar dentro do __constructor () ou action_function () de cada controlador se o usuário tem o papel exigido por exemplo com a -> tem a função (). Você também deve usar o módulo ORM, é apenas incrível, uma vez que você tem muitas relações entre as tabelas. Além disso, o método __get () dentro de um objeto ORM pode ser extremamente útil.

É também muito fácil de estender uma função de controlador, definindo o novo parâmetro para NULL e verificação de que em uma instrução if. por exemplo. Você precisa de apenas uma função para editar uma entrada de idade ou adicionar um novo.

public funciton action_manage($id = NULL)
{
    $entry = ORM::factory('entry', $id); // if id is null a new entry will be returned 
}

Também é importante que você estruturar os pontos de vista em sub pastas para evitar um diretório vista confuso.

Outras dicas

Muitas perguntas para responder aqui, eu vou tentar o meu melhor.

Você sabe exemplos da vida real de aplicações "database-pesados", como diretórios, comunidades on-line ... com um log-in área construída em Kohana 3 onde eu poderia dar uma olhada como eles fazem isso?

Há alguns exemplos de aplicações lá fora. Woody Gilk (fundador Kohana) publicou o código para seu site pessoal na github . Para a área de login, ele atribui um valor de cookie. Kohana 3 / 2,4 sinal de que os biscoitos que o torna seguro e retira a exigência de sessões. Isto pode não ser-se a todos os paladares assim você sempre pode usar construído na biblioteca de autenticação que usa ambas as sessões e cookies.

Aqui estão alguns outros projetos que você pode estar interessado em:

  • Shindig - Light módulo de peso blog para kohana 3
  • Kohanut - Um CMS extensíveis escritos em Kohana 3

Existem convenções ou melhores práticas sobre como estruturar uma área de login prorrogável por usuários finais em um projeto Kohana que não só é capaz de lidar com uma página anuário de negócio, mas outros produtos em páginas separadas, bem como?

Se eu entendi você deseja gerar uma caixa de login para cada uma dessas páginas? Isso é fácil com Kohana 3 como podemos aproveitar o H em HMVC. Sam de Fressyinet escreveu um artigo detalhando o que isto tudo no Blog iBuilding Tech. Applications Scaling Web com HMVC .

O que você pode fazer é, em seguida, executar uma solicitação interna para o controlador de login ou ação e despejar a resposta em sua página de exibição.

$login = Request::factory('login')->execute()->response;

$ login agora contém o formulário de login, que você pode colocar em qualquer lugar que você gosta. Você pode querer voltar uma resposta diferente se o pedido é interno que é por isso que este pedaço de código pode ser útil:

if (Request::instance() !== $this->request)
{
    print 'Internal called made with Request::factory';
}

Você conhece algum bons recursos na construção de aplicações complexas com Kohana?

Não vai ser documentação mostrando-lhe como construir aplicações complicadas. A vista da comunidade Kohana é que você é um desenvolvedor PHP e deve ser capaz de resolver estes problemas para si mesmo. Se você não pode, bem, você não deve estar usando Kohana então.

Você construiu algo semelhante e poderia me dar recomendações sobre uma estrutura de projeto?

Depois de entender como Kohana 3 encontra os arquivos coisas são fáceis de entender.

|- classes
|-- controller
|-- model
|- views

Por exemplo:

Controller_Mathew extends Controller 

irá procurar um arquivo chamado mathew.php em:

classes/controller

Underscores pode ser usado para especificar diretórios mais profundas. Exemplo:

Controller_Mathew_Davies extends Controller

irá procurar um arquivo chamado davies.php em:

classes/controller/mathew/

Como você pode ver, os sublinhados no ato nome do controlador como separadores de diretório. Este soa verdadeiro para os modelos e classes de baunilha.

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