Domanda

Sto cercando consigli, tutorial e link a come impostare una di medie dimensioni un'applicazione web con Kohana 3. Ho implementato modelli MVC in passato, ma mai lavorato contro un framework MVC "formalizzato" quindi sono ancora ottenere la mia testa intorno alla terminologia -. giocando in giro con esempi di base, la costruzione di viste e modelli, e così via

Sto procedendo abbastanza bene ma voglio impostare un progetto web del mondo reale (uno dei miei che ho in programma per un bel po 'di tempo) come un oggetto di apprendimento.

imparo meglio con l'esempio, ma la documentazione esempio-based è un po 'scarne per Kohana 3 in questo momento - si dice così se stessi sul sito. Mentre io non sono preoccupato per l'apprendimento del quadro come vado avanti, voglio per assicurarsi che il codice di base è sano strutturato fin dall'inizio - cioè i controllori sono divisi bene, chiamato bene e secondo gli standard, e soprattutto la logica di business è separati in modelli di dimensioni appropriate.

La mia domanda potrebbe, nel suo nucleo, essere descritto come una directory business con una gamma di funzioni di ricerca e di quotazione, e una zona di accesso per ogni proprietario di entrata. L'attuale database backend amministrativo è già preso cura di.

Supponiamo che ho tutte le API elaborato e già in atto - elenco tutte le imprese, modificare affari, le aziende della lista per nome della via, creare offerta login come business, e così via, e sto solo cercando il modo per adattarsi la funzionalità in un modello MVC e in una struttura dell'applicazione Kohana che può essere facilmente esteso.

  • Sai esempi reali di applicazioni "di database-heavy" come directory, comunità online ... con una superficie di log-in costruita su Kohana 3, preferibilmente Open Source così ho potuto dare uno sguardo come fallo?

  • Ci sono convenzioni o le migliori pratiche su come strutturare una superficie login estensibile per gli utenti finali in un progetto Kohana che non solo è in grado di gestire una pagina business directory, ma altri prodotti su pagine separate come bene?

  • Conosci qualche buone risorse sulla costruzione di applicazioni complesse con Kohana?

  • Avete costruito qualcosa di simile e mi potrebbe dare raccomandazioni su una struttura di progetto?

  

Bounty

     

Sono l'assegnazione del premio a @antpaw perché mi ha fornito con un'applicazione Kohana con una certa logica di business che mi sta dando un sacco di esempi. Acclamazioni @Pixel Developer per l'ottimo ingresso, come pure -! Come spesso accade, mi augurerei si potrebbe dividere una taglia

È stato utile?

Soluzione

Vorrei utilizzare il modulo di autenticazione che viene fornito con kohana per il login. Questo vi darà la tabella di ruoli in cui è possibile impostare le possibili opzioni di autorizzazione e le relative agli utenti in seguito. Dopo che è possibile controllare l'interno della __constructor () o action_function () di ciascun controller se l'utente ha il ruolo richiesto ad esempio con la - Funzione> ha (). Si dovrebbe anche usare il modulo ORM, il suo solo impressionante, dal momento che si dispone di molte relazioni tra le tabelle. Anche il metodo __get () all'interno di un oggetto ORM può essere estremamente utile.

E 'anche abbastanza facile per estendere una funzione di controllo impostando il nuovo parametro a NULL e controllando per che in un if. per esempio. è necessario solo una funzione per l'editing di una voce di vecchia o l'aggiunta di uno nuovo.

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

E 'anche importante che si struttura il punto di vista in cartelle secondarie per evitare una directory vista disordinato.

Altri suggerimenti

Un sacco di domande a cui rispondere qui, farò del mio meglio.

  

Sai esempi reali di applicazioni "di database-heavy" come directory, comunità online ... con un log-in un'area costruita su Kohana 3 dove ho potuto dare uno sguardo come lo fanno?

Ci sono alcuni esempi di applicazioni là fuori. Woody Gilk (Kohana fondatore) ha pubblicato il codice per il suo sito web personale su github . Per l'area di login che assegna un valore di cookie. Kohana 3 / 2,4 segno i biscotti che lo rende sicuro e elimina la necessità per le sessioni. Questo potrebbe non essere fino a gusti di tutti in modo da poter sempre utilizzare costruito in libreria di autenticazione che utilizza entrambe le sessioni ei cookie.

Ecco alcuni altri progetti potreste essere interessati in:

  • Shindig - Luce modulo peso blog per kohana 3
  • Kohanut - Un estendibile CMS scritto in Kohana 3
  

Ci sono convenzioni o le migliori pratiche su come strutturare una superficie login estensibile per gli utenti finali in un progetto Kohana che non solo è in grado di gestire una pagina business directory, ma altri prodotti su pagine separate come bene?

Se ho capito bene che si desidera generare un box di login per ciascuna di queste pagine? Questo è facile con Kohana 3 come siamo in grado di sfruttare la H in HMVC. Sam de Fressyinet ha scritto un articolo in dettaglio ciò che questa storia sul Blog iBuilding Tech. Scaling Applicazioni Web con HMVC .

Che cosa si può poi fare è eseguire una richiesta interna al controller di accesso o l'azione e il dump la risposta nella vostra pagina di visualizzazione.

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

$ login ora contiene il modulo di accesso, che si può mettere da nessuna parte che ti piace. Si consiglia di restituire una risposta diversa se la richiesta è interno che è il motivo per cui questo pezzo di codice può essere utile:

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

Conosci qualche buone risorse sulla costruzione di applicazioni complesse con Kohana?

Non ci sara 'la documentazione che vi mostra come costruire applicazioni complesse. Il punto di vista della comunità Kohana è che sei uno sviluppatore PHP e dovrebbe essere in grado di risolvere questi problemi da soli. Se non è possibile, così non si dovrebbe utilizzare Kohana poi.

  

Avete costruito qualcosa di simile e mi potrebbe dare raccomandazioni su una struttura di progetto?

Una volta capito come Kohana 3 trova i file le cose sono facili da capire.

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

Ad esempio:

Controller_Mathew extends Controller 

cercherà un file chiamato mathew.php in:

classes/controller

sottolineatura possono essere utilizzati per specificare le directory più profondi. Esempio:

Controller_Mathew_Davies extends Controller

cercherà un file chiamato davies.php in:

classes/controller/mathew/

Come si può vedere, le sottolineature nel nome del controller agire come separatori di directory. Ciò suona vero per i modelli e le classi di vaniglia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top