Pregunta

Estoy buscando consejos, tutoriales y enlaces cómo configurar una aplicación web de tamaño medio con Kohana 3. He implementado patrones MVC en el pasado, pero nunca trabajado en contra de un marco MVC "formalizado", así que estoy todavía conseguir mi cabeza alrededor de la terminología -. jugando un poco con ejemplos básicos, la construcción de puntos de vista y las plantillas, y así sucesivamente

Estoy progresando bastante bien, pero quiero crear un proyecto web en el mundo real (una de mi propia que he estado planeando desde hace bastante tiempo ahora) como un objeto de aprendizaje.

aprendo mejor ejemplo, pero la documentación a base de ejemplo es un poco escaso para Kohana 3 ahora mismo - lo dicen a sí mismos en el sitio. Aunque no estoy preocupado por el aprendizaje del marco a medida que avanzo, quiero para asegurarse de que la base de código está estructurado de forma saludable desde el principio - es decir, los controladores se dividen muy bien, llamado así y de acuerdo con las normas, y lo más importante es la lógica de negocio separado en modelos de tamaño adecuado.

Mi aplicación podría, en su núcleo, puede describir como un directorio de empresas con una gama de funciones de búsqueda y de perfil, y una zona de inicio de sesión para cada propietario de entrada. El motor de base de datos administrativa real ya está a cargo de.

Supongamos que tengo toda la API elaborado y en el lugar ya - Lista de todas las empresas de negocios, editar, lista de empresas por nombre de la calle, crear oferta Conectado como negocio, y así sucesivamente, y estoy buscando la manera de encajar la funcionalidad en un patrón MVC y en una estructura de aplicación Kohana que se puede ampliar fácilmente.

  • No sabes ejemplos reales de aplicaciones "en bases de datos pesados" como directorios, comunidades online ... con una zona de inicio de sesión construida sobre Kohana 3, preferiblemente de código abierto por lo que podría echar un vistazo cómo ¿hazlo?

  • ¿Hay convenciones o mejores prácticas sobre la manera de estructurar un área de acceso extensible para los usuarios finales en un proyecto Kohana que no sólo es capaz de manejar una página de directorio de negocios, pero otros productos en páginas separadas, así?

  • ¿Conoce algún buenos recursos en la construcción de aplicaciones complejas con Kohana?

  • ¿Usted ha construido algo similar y me pudiera dar recomendaciones sobre una estructura de proyecto?

  

Bounty

     

Estoy concesión de la recompensa a @antpaw porque me proporcionó una aplicación Kohana con un poco de lógica de negocio que me está dando una gran cantidad de ejemplos. Saludos @Pixel desarrollador por su excelente entrada, así - como tantas veces, me gustaría que se podría dividir una recompensa

¿Fue útil?

Solución

Me utilizar el módulo de autenticación que viene con kohana para el inicio de sesión. Esto le dará la tabla papeles donde puede configurar las opciones posibles de permisos y relacionándolos con los usuarios más tarde. Después de que se puede comprobar en el interior del __constructor () o action_function () de cada controlador de si el usuario tiene la función requerida, por ejemplo, con el - Función> tiene (). También debe utilizar el módulo de ORM, simplemente es impresionante, ya que tiene muchas relaciones entre las tablas. También el método __get () dentro de un objeto ORM puede ser extremadamente práctico.

También es bastante fácil de extender una función de controlador definiendo el nuevo parámetro en NULL y la comprobación de que en una sentencia if. p.ej. que necesita sólo una función para editar una entrada antigua o la adición de uno nuevo.

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

También es importante que usted estructura de las vistas en las subcarpetas para evitar un directorio vista desordenado.

Otros consejos

Un montón de preguntas a responder aquí, voy a tratar lo mejor posible.

  

¿Conoce ejemplos de la vida real de las aplicaciones de bases de datos "pesados", como directorios, comunidades en línea ... con un inicio de sesión en la zona construida sobre Kohana 3 en el que podía echar un vistazo cómo lo hacen?

Hay algunos ejemplos de aplicaciones que hay. Woody Gilk (fundador Kohana) ha publicado el código a su página web personal en github . Para el área de acceso se asigna un valor de cookie. Kohana 3 / 2,4 signo de las cookies que hace que sea seguro y elimina el requisito de sesiones. Esto podría no ser hasta todos los gustos así que siempre puede utilizar construido en la librería de autenticación que utiliza las dos sesiones y cookies.

Estos son algunos otros proyectos que podría estar interesado en:

  • Shindig - módulo de blog de peso ligero para kohana 3
  • Kohanut - Un CMS extensible escrito en Kohana 3
  

¿Hay convenciones o mejores prácticas sobre la manera de estructurar un área de acceso extensible para los usuarios finales en un proyecto Kohana que no sólo es capaz de manejar una página de directorio de negocios, pero otros productos en páginas separadas, así?

Si he entendido bien que desea generar un cuadro de inicio de sesión para cada una de esas páginas? Esto es fácil con Kohana 3 como podemos tomar ventaja de la H en HMVC. Sam de Fressyinet escribió un artículo que detalla lo que se trata todo esto en el blog de iBuilding Tech. Scaling Aplicaciones Web con HMVC .

Lo que puede entonces hacer es realizar una solicitud interna al controlador de acceso o de acción y volcar la respuesta en su página de vista.

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

$ login contiene ahora el formulario de acceso, que se puede poner en cualquier lugar que te gusta. Es posible que desee devolver una respuesta diferente si la solicitud es interno por lo que este pedazo de código puede ser útil:

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

¿Conoce algún buenos recursos en la construcción de aplicaciones complejas con Kohana?

No va a haber documentación que muestra cómo construir aplicaciones complejas. El punto de vista de la comunidad Kohana es que eres un desarrollador de PHP y debe ser capaz de resolver estos problemas por sí mismo. Si no se puede, así que no debería estar usando Kohana a continuación.

  

¿Usted ha construido algo similar y me pudiera dar recomendaciones sobre una estructura de proyecto?

Una vez que entienda cómo Kohana 3 encuentra archivos cosas son fáciles de entender.

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

Por ejemplo:

Controller_Mathew extends Controller 

buscará un archivo llamado mathew.php en:

classes/controller

Underscores se pueden utilizar para especificar los directorios más profundas. Ejemplo:

Controller_Mathew_Davies extends Controller

buscará un archivo llamado davies.php en:

classes/controller/mathew/

Como se puede ver, los guiones en el nombre del controlador actúan como separadores de directorios. Esto suena a verdad para los modelos y clases de vainilla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top