session_destroy - session_start php ejemplos
Estructura del proyecto para PHP (4)
Soy nuevo en PHP y quiero saber la estructura de directorios para los proyectos php. Tengo experiencia en Java y en Java tenemos src contiene archivos de origen Java, WEB-INF contiene lib y páginas jsp. ¿Tenemos alguna estructura de directorio estándar similar en PHP? También tenemos capas en PHP como tenemos capas en java (por ejemplo, capas Web, Servicio, DAO)
Busqué pocos enlaces. Pero cada uno dando respuestas diferentes.
No estoy seguro si podemos comparar los dos idiomas. Sólo quiero seguir algunos estándares.
Gracias por adelantado.
Con la invención de Composer, las personas ahora tienen un lugar central para registrar sus proyectos para que el mundo los consuma, y otras personas ahora pueden ver ese código base y ver similitudes.
El resultado es el siguiente: https://github.com/php-pds/skeleton
En breve:
If a package has a root-level directory for ...
... then it MUST be named:
command-line executables bin/
configuration files config/
documentation files docs/
web server files public/
other resource files resources/
PHP source code src/
test code tests/
Este estándar no hace ninguna otra recomendación sobre qué directorios deben existir por debajo de src
o public
. Sugeriría simplemente tener un espacio de nombres debajo de src
e implementar cualquier diversificación de "modelos", "controladores", etc. a través del nombre de clase completo, por ejemplo, si se decide tener una Projectname/Controller/WhateverController
, residiría en la ruta compatible con PSR-4 src/Controller/WhateverController.php
y se cargará automáticamente mediante Composer con "autoload":{"psr-4":{"Projectname//": "src"}}
.
Desafortunadamente (o no) eres muy libre con PHP. Tu decides.
Aquí está mi estructura:
framework/
controllers/
models/
configs/
files/
templates/
themes/
tmp/
index.php
init.php
.htaccess
Puede controlar el acceso a través de .htaccess.
No PHP es lo que haces de ella. Pueden ser archivos planos muy simples, o como quieras.
Dicho esto, hay algunos estándares de codificación acordados, pero no existe una "aplicación" de dichos estándares. Se llaman PSR (Recomendación de Estándares de PHP). Hay un fondo al respecto aquí: http://net.tutsplus.com/tutorials/php/psr-huh/
Puede ver los estándares uno por uno aquí: http://www.php-fig.org/psr/
La mayoría de los marcos principales siguen estos estándares, y si va a utilizar uno, puede ser más fácil seguir el flujo.
Una vez más, cada marco, proyecto, complemento, programa, etc., tienen diferentes diseños con diferentes estructuras de proyecto. Una estructura común es algo como esto:
-framework_dir
-public_html
-js
-img
-css
-index.php
-protected/private
-controllers
-models
-views
-etc
Luego usan el archivo .htaccess
para bloquear el acceso a los directorios protegidos. De nuevo, esta es solo la representación común que he visto en varios marcos. Si está haciendo un proyecto personal, simplemente use algo que le resulte cómodo. Cada marco te dará una biblioteca diferente o una forma de acceder a los datos. No hay "capas", pero una vez más, cada marco tiene objetos que manejan diferentes áreas (correo electrónico, base de datos, caché, http, registros, etc.). Debido a que hay docenas de populares, solo depende de usted encontrar lo que encaja con su filosofía o proyecto. Mire algunos de los videos de 5 minutos del blog, vea qué jives y luego pruébelo durante un par de días. Si no te gusta, cambia a otro.
Tiendo a usar una estructura de carpetas basada en características para mis proyectos backend. Cada carpeta de características tiene su propio controlador, administrador y archivo de rutas. Esto funciona bien para api- backends.
Por ejemplo, tenemos una función de Cliente con un Controlador de Clientes, Repositorio de Clientes, Rutas de Clientes, ...
Mi estructura de carpetas se ve así:
- build
-- phpdox.xml
-- phpmd.xml
-- phpunit.dist.xml
- config
- src
-- Customer
--- CustomerController.php
--- CustomerRepository.php
--- Customer.php
--- customer.routes.php
- tests
- vendor
composer.json
index.php
.htaccess