Cómo diseñar su estructura de archivos PHP

Por el amor de Dios, usa un marco. No hay excusa para pedirle a la gente que le pague por tomar estas decisiones cuando los grupos de personas son mucho mejores de lo que usted ya pasó mucho tiempo haciéndolo y refinando sus decisiones durante AÑOS.

A menos que tenga una razón convincente que pueda expresar claramente para no hacerlo, debería usar un marco hoy. Symfony o Laravel son buenos lugares para comenzar, tal vez Silex para proyectos realmente pequeños, pero casi cualquier marco será mejor en todos los aspectos de lo que se te ocurra como desarrollador único y, lo que es más importante, te dará una gran ventaja en tu proyecto

Estoy hablando por experiencia aquí. En 2009 fui llamado estúpido después de defender mi negativa a usar un marco por un compañero de trabajo recién contratado. Este compañero de trabajo hizo todo lo posible para explicarle a mi jefe por qué mi decisión fue mala y finalmente me despidieron y acepté mi trabajo.

Tenía razón y finalmente me di cuenta de que me hizo un gran favor, aunque mantener mi trabajo hubiera sido agradable.

Hola carl

Me parece que deberías considerar seriamente buscar patrones MVC (y OOP), ya que te ayudará mucho en la toma de decisiones arquitectónicas.

Un ejemplo de cómo típicamente organizaría todo, usando un patrón MVC:

En el directorio raíz, almacenaré index.php, composer.json y .htaccess. No hay otros archivos. Index.php actúa como el controlador frontal, es decir, el único punto de entrada al sitio web.

Dentro del directorio raíz, crearé una carpeta llamada “media” y almacenaré todas las imágenes CSS / JS / allí. Y eso es todo, absolutamente nada más se almacena en la raíz web, solo lo siguiente:

  • index.php
  • composer.json
  • .htaccess
  • carpeta multimedia

Todo lo demás se almacena un nivel por encima del webroot :

  • app / code / core contendrá todo el código de nivel del sistema y los archivos de configuración
  • aplicación / código / módulos contienen todas las funciones auxiliares
  • app / design / o contendrá los archivos de vista (el HTML generado)
  • public / controllers contiene los Controllers para cada página
  • public / models contiene los modelos
  • var / también tendrá varios subdirectorios, que se utilizan para almacenar archivos en caché y registros
  • proveedor / almacena cualquier dependencia instalada del compositor

Esto puede sonar como si empezara a complicarse un poco (o no), pero mira un marco que estoy creando usando una estructura similar: arout / diamondphp

Creo que es muy simple e intuitivo para navegar, y fácil de adivinar exactamente dónde encontrar cualquier archivo dado.

Espero que esto haya ayudado un poco.

Mi marco actual favorito es CodeIgniter.

Pero fuera de este marco personalmente, organizo mis archivos de la siguiente manera

\ U0001f4c1root

| – \ U0001f4c1lib

El | | – \ U0001f4c3model1.php

El | | – \ U0001f4c3model2.php

| – \ U0001f4c1php

El | | – \ U0001f4c3action1.php

El | | – \ U0001f4c3action2.php

| – \ U0001f4c1home

El | | – \ U0001f4c3index.php

El | | – \ U0001f4c1probablemente otra página

| – \ U0001f4c1 puede ser otra página web

| – \ U0001f4c3index.php

Donde la carpeta de inicio es como una página … Mis modelos están en la carpeta ‘lib’. Las acciones para jquery get están en la carpeta php, la estructura podría cambiar como lo desee, simplemente no intente perder las carpetas de anidación y al final no recuerde por qué colocó un archivo en una carpeta determinada.

Todavía te recomiendo que leas sobre el encendedor de código …

  • archivo de proyecto
  • recursos
  • css
  • tema azul
  • background.png
  • imágenes
  • background.png
  • blue-theme.css
  • my-index.css
  • js
  • my-index.js
  • my-contact-info.js
  • imágenes
  • productos
  • computer.jpg
  • cellphone.png
  • impresora.jpg
  • my-company-logo-small.png
  • my-company-logo-large.png
  • datos
  • some-data.json
  • more-data.xml
  • table-data.csv
  • extra-data.txt
  • vendedores
    • jquery
    • imágenes
    • ajax-loader.gif
    • icons-18-white.png
    • jquery.min.js
    • jquery.mobile-1.1.0.min.css
    • jquery.mobile-1.1.0.min.js
    • some-css-library
    • some-plugin.jquery
  • my-index.html
  • my-contact-info.html
  • my-products.html
  • Recomiendo comenzar con un marco. Hay peores que Laravel.

    Eso depende estrictamente de los datos. He tenido algunos que no tenían más que una base de datos de una sola tabla, he tenido algunos que tenían una docena de archivos de datos. (Y he trabajado en algunos, desarrollados por otros, que tenían cientos de archivos de datos).

    Se pregunta “¿cuál es el procedimiento paso a paso para crear una comida gourmet?”. No hay una respuesta única, aparte de “Estudio los datos que el programa va a utilizar y los expongo sobre esa base”.

    Patrón MVC

    Esto suena bien para mi compañero que codifica en PHP. Autodidacta y en ello! ¡Bien hecho!