6

Hola chicos, solo una pequeña pregunta aquí ... (¡con suerte!)¿Cuánta separación de directorios debe tener mi framework?

He estado probando varias estructuras de directorios diferentes para mi framework PHP MVC. Mientras hacía esto, pensé en algunas razones para separar las diferentes partes de la aplicación entre sí.

Por ejemplo, digamos que esta es mi estructura actual:

- index.php 
- private/ 
    - application/ 
     - ... (MVC stuff. Irrelevant I think...) 
    - config/ 
     - config.php 
    - framework/ 
     - bootstrap.php 
     - includes/ 
     - library/ 
      - ... (Framework classes) 
    - libraries/ 
     - Zend/ 
     - PEAR/ 
- public/ 
    - css/ 
    - images/ 

La forma en que lo tengo, no puedo actualizar el marco simplemente sobrescribir el directorio /privada/marco/, que no lo hará afectar la configuración del marco de trabajo del usuario en /private/config/, o las bibliotecas de terceros en /private/libraries/.

El archivo /index.php se utiliza casi exclusivamente para cargar el archivo de /private/framework/bootstrap.php, lo que supondrá la actualización del directorio de /privada/marco/ también actualizará el arranque principal archivo (me ahorra tener que actualizar el archivo /index.php, que permanecerá como está, ya que no hay mucho en él).

Además, la aplicación está separada de todo lo relacionado con el marco, por lo que el usuario puede cambiar/cambiar/actualizar sus aplicaciones cuando sea necesario sin tener que preocuparse por otros directorios.

¿Estoy en el buen camino aquí en lo que respecta a la separación de los directorios para facilitar su actualización?

que he visto en algunos marcos que tienen tanto su /privada/bibliotecas/ y /privada/aplicación/ directorios dentro de su directorio de marco ... pero esto me parece que sería difícil actualizar a una versión más nueva del marco si es necesario. ¿O estoy pensando en eso de la manera incorrecta?

Puedes ver mi estructura de directorios anterior here si te interesa. Mi nuevo es un poco diferente (espero que sea mejor ...), como es mi pregunta, así que pensé que justificaba la publicación de una nueva pregunta.

No es una pregunta tan pequeña como hubiera esperado, ¡pero bueno! ;)

Gracias de antemano =)

Respuesta

2

que sugeriría que separa código marco de código de aplicación. El marco debe estar bajo un directorio de nivel superior y la aplicación bajo un directorio diferente.

En realidad ... Le sugiero que consulte la estructura de directorios utilizada por CakePHP.

+0

En realidad, Cake es uno de los frameworks que he estado estudiando últimamente. ¿Quiere decir que mi estructura dir anterior no muestra la misma cantidad de separación que Cake? Además de que mis directorios principales están dentro del directorio 'private /', las dos estructuras en realidad se parecen bastante a mí. Además, su estructura tiene un directorio 'Cake/config /', lo que significa que si alguna vez actualizaste el directorio 'Cake /', 'Cake/config /' se sobrescribiría ... ¿no? Pero supongo que eso no afectaría demasiado a Cake, ya que en ese archivo parece que solo está configurada una variable, y por el propio marco, no el usuario. – manbeardpig

+0

Sí, eso es lo que quiero decir.Sin embargo, Cake tiene dos conjuntos de archivos de configuración. Hay app/config y cake/config. El primero es la configuración de la aplicación: base de datos, caché, sales, cosas así. Este último contiene un identificador de versión, una configuración para la estructura de directorios y algunas cosas de manejo de unicode. Existe una gran diferencia entre la configuración de la aplicación y la configuración del marco. Creo que 'framework' y 'application' deberían ser directorios de nivel superior con 'public' en algún lugar bajo 'application'. Esto impone una mejor separación entre el código de la infraestructura y el código de la aplicación. – Kalium

+0

Tenía la sensación de que ese era el caso, ya que la única variable definida en el cake/config era para la versión de Cake. Muy bien, entonces si hiciera lo que acababas de proponer, y 'public /' fuera puesto en 'application /', ¿usaría mi framework para presentar todos los archivos css/js/img, o htaccess para enrutar las llamadas css/js/img a el directorio/application/public /? – manbeardpig

Cuestiones relacionadas