Question

Je cherche des conseils, des tutoriels et des liens sur la façon de mettre en place une application web de taille moyenne avec Kohana 3. Je l'ai mis en place des modèles MVC dans le passé, mais jamais travaillé contre un « formalisé » framework MVC, donc je suis encore obtenir ma tête autour de la terminologie -. toying autour des exemples de base, la construction de points de vue et des modèles, etc.

Je progresse assez bien, mais je veux mettre en place un projet web dans le monde réel (un de mes propres que j'ai planifié depuis un certain temps maintenant) comme un objet d'apprentissage.

J'apprends par l'exemple, mais la documentation est basé sur l'exemple un peu clairsemés pour Kohana 3 en ce moment - ils le disent eux-mêmes sur le site. Bien que je ne suis pas inquiet d'apprendre le cadre que je vais le long, je veux vous assurer que la base de code est structuré saine dès le début - les contrôleurs-à-dire sont divisés bien, bien nommée et selon les normes, et surtout la logique métier est séparés dans les modèles de taille appropriée.

Mon application pourrait, dans son cœur, être décrit comme un répertoire des entreprises avec une gamme de fonctions de recherche et d'inscription, et une zone de connexion pour chaque propriétaire d'entrée. Le backend de base de données administrative réelle est déjà pris en charge.

Supposant j'ai tout l'API élaboré et déjà en place - liste toutes les entreprises, les entreprises d'édition, les entreprises de la liste par nom de rue, créez offre vous êtes connecté comme entreprise, et ainsi de suite, et je cherche juste comment adapter la fonctionnalité dans un modèle MVC et dans une structure d'application Kohana qui peut être facilement étendu.

  • Savez-vous des exemples réels d'applications « de la base de données-lourds » tels que les répertoires, les communautés en ligne ... avec une zone de connexion intégré sur Kohana 3, de préférence Open Source je ne pouvais donc jeter un coup d'oeil la façon dont ils fais le?

  • Y at-il des conventions ou des meilleures pratiques sur la façon de structurer une zone de connexion extensible pour les utilisateurs finaux dans un projet Kohana qui est non seulement capable de gérer une page d'annuaire d'entreprise, mais d'autres produits sur des pages séparées ainsi?

  • Connaissez-vous des bonnes ressources sur la construction d'applications complexes avec Kohana?

  • Avez-vous construit quelque chose de similaire et pourrait me donner des recommandations sur une structure de projet?

  

Bounty

     

J'attribution de la prime à @antpaw parce qu'il m'a fourni une application Kohana avec une certaine logique métier qui me donne beaucoup d'exemples. Vive @Pixel Developer pour votre excellente entrée aussi bien - comme si souvent, je voudrais qu'on pourrait diviser une prime

Était-ce utile?

La solution

Je voudrais utiliser le module auth qui vient avec kohana pour la connexion. Cela vous donnera la table des rôles où vous pouvez configurer les options possibles d'autorisation et les relatives aux utilisateurs plus tard. Après cela, vous pouvez vérifier à l'intérieur du __constructor () ou action_function () de chaque contrôleur si l'utilisateur a le rôle requis par exemple avec la -> a () fonction. Vous devez également utiliser le module ORM, son tout simplement génial, puisque vous avez beaucoup de relations entre les tables. Aussi la méthode __get () à l'intérieur d'un objet ORM peut être extrêmement utile.

Il est aussi assez facile d'étendre une fonction de contrôleur en définissant le nouveau paramètre à NULL et en vérifiant que dans une instruction if. par exemple. vous avez besoin une seule fonction pour la modification d'une ancienne entrée ou l'ajout d'un nouveau.

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

Il est également important que vous structurez les vues dans des sous-dossiers pour éviter un répertoire de vue en désordre.

Autres conseils

Beaucoup de questions à répondre ici, je vais essayer de mon mieux.

  

Connaissez-vous des exemples concrets d'applications de base de données « lourdes » comme des répertoires, des communautés en ligne ... avec un journal dans la zone construite sur Kohana 3 où je pourrais jeter un coup d'oeil comment ils le font?

Il y a quelques exemples d'applications là-bas. Woody Gilk (fondateur Kohana) a publié le code sur son site personnel sur github . Pour la zone de connexion, il attribue une valeur de cookie. Kohana 3 / 2.4 signe les biscuits qui le rend sûr et supprime l'obligation pour les sessions. Cela pourrait ne pas être à la hauteur des goûts de chacun afin que vous puissiez toujours utiliser construit dans la bibliothèque d'authentification qui utilise les sessions et les cookies.

Voici quelques autres projets que vous pourriez être intéressé par:

  • Shindig - Module d'éclairage blog de poids pour kohana 3
  • Kohanut - Un CMS écrit en Kohana 3 extensible
  

Y at-il des conventions ou des meilleures pratiques sur la façon de structurer une zone de connexion extensible pour les utilisateurs finaux dans un projet Kohana qui est non seulement capable de gérer une page d'annuaire d'entreprise, mais d'autres produits sur des pages séparées ainsi?

Si je vous comprends bien, vous voulez générer une boîte de connexion pour chacune de ces pages? Ceci est facile avec Kohana 3 que nous pouvons tirer profit de la H dans HMVC. Sam de Fressyinet a écrit un article détaillant ce que tout cela au sujet sur le blog iBuilding Tech. Mise à l'échelle des applications Web avec HMVC.

Qu'est-ce que vous pouvez faire est d'effectuer une demande interne au contrôleur de connexion ou de l'action et de vidage de la réponse dans votre page vue.

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

$ login contient maintenant le formulaire de connexion, que vous pouvez mettre où vous voulez. Vous voudrez peut-être retourner une réponse différente si la demande est interne qui est pourquoi ce morceau de code peut être utile:

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

Connaissez-vous des bonnes ressources sur la construction d'applications complexes avec Kohana?

Il ne va pas y avoir une documentation vous montrant comment créer des applications complexes. La vue de la communauté Kohana est que vous êtes un développeur PHP et devrait être en mesure de résoudre ces problèmes pour vous-même. Si vous ne pouvez pas, bien que vous ne devriez pas utiliser Kohana alors.

  

Avez-vous construit quelque chose de similaire et pourrait me donner des recommandations sur une structure de projet?

Une fois que vous comprenez comment Kohana 3 trouve des choses les fichiers sont faciles à comprendre.

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

Par exemple:

Controller_Mathew extends Controller 

recherche un fichier appelé mathew.php dans:

classes/controller

underscores peuvent être utilisés pour spécifier des répertoires plus profonds. Exemple:

Controller_Mathew_Davies extends Controller

va chercher un fichier appelé davies.php dans:

classes/controller/mathew/

Comme vous pouvez le voir, les traits de soulignement dans l'acte de nom du contrôleur comme séparateurs de répertoire. Ce sonne vrai pour les modèles et les classes de vanille.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top