Skip to content
4rcan31Public

About

Sao es un framework de desarrollo web en PHP diseñado para simplificar y agilizar el proceso de creación de aplicaciones web potentes y elegantes. Fue creado como método de aprendizaje, pero sigue creciendo y desarrollándose aún más.

Topics

Resources

Stars

30 stars

Watchers

3 watching

Forks

Repository files navigation

Sao

Framework MVC en PHP: enrutamiento, ORM, autenticacion, validacion, vistas, WebSockets y una CLI propia (jenu).

Nacio como herramienta de aprendizaje y hoy sostiene aplicaciones reales. La linea 1.x tiene un contrato explicito: ver doc/STANDARD-v1.md.


Requisitos

  • PHP >= 8.0 con json, openssl, pdo y pdo_mysql.
  • Composer.
  • MySQL o MariaDB.

Opcionales: sockets para WebSockets, curl para la geolocalizacion por IP.

Instalacion

git clone git@github.com:4rcan31/Sao.git mi-app
cd mi-app
composer install
cp .env.example .env
php jenu key:generate
php jenu serve

Detalle completo y problemas frecuentes en doc/install.md.

vendor/ y .env no estan versionados. Despues de clonar hay que correr composer install y crear el .env a partir de .env.example.

Un ejemplo minimo

Una ruta en app/routes/web.php:

Route::get('/home', function(){
    controller('IndexController', 'home');
});

El controlador en app/Controllers/IndexController.php:

class IndexController extends BaseController {

    public function home(){
        view('index');
    }
}

Y la vista en app/Views/index.php. Ejemplo completo, con modelo y base de datos, en doc/example.md.

Estructura

app/          Tu aplicacion: rutas, controladores, modelos, vistas,
              middlewares, migraciones y comandos propios.
core/         El nucleo del framework.
public/       Raiz web. Front controller y assets.
inc/          Bootstrap.
doc/          Manual.
examples/     Ejemplos de uso.
testing/      Verificaciones del nucleo.
jenu          CLI.

Detalle en doc/directorys.md.

La CLI

php jenu help                     # lista todos los comandos
php jenu serve                    # servidor de desarrollo
php jenu key:generate             # genera una APP_KEY nueva
php jenu key:check                # verifica que la APP_KEY este cargada
php jenu make:migration usuarios  # crea una migracion
php jenu execute:migrations       # aplica las migraciones
php jenu check:connection:mysql   # prueba la conexion a la base

Documentacion

Tema Documento
Estandar de la version 1 STANDARD-v1.md
Instalacion install.md
Configuracion settings.md
Estructura de directorios directorys.md
Uso general uso.md
Ejemplo completo example.md

Modulos

Modulo Documento
Introduccion a los modulos apps/intro.md
Enrutamiento apps/router.md
Request y Response apps/http.md
Autenticacion apps/auth.md
Base de datos y ORM apps/database.md
Validacion apps/validate.md
Vistas y formularios apps/views.md
Helpers apps/helpers.md
CLI (jenu) apps/jenu.md
Cifrado apps/encrypt.md
Token CSRF apps/csrf.md
Archivos apps/resources.md
Servidor apps/server.md
Tiempo apps/time.md

Desarrollo

composer test      # verificaciones del nucleo
composer validate  # coherencia de composer.json y composer.lock

Las reglas que sigue el repositorio estan en doc/STANDARD-v1.md. Los cambios de cada version, en CHANGELOG.md.

Proyectos hechos con Sao

  • FTechnology — venta de productos para mascotas y control de Croquette, un dispensador de comida basado en hardware.
  • Paravos — comercio electronico. De aca salieron las extensiones del ORM, la validacion, la autenticacion y las notificaciones que hoy estan en el nucleo. Ver doc/CONSOLIDATION.md.

Licencia

MIT.

About

Sao es un framework de desarrollo web en PHP diseñado para simplificar y agilizar el proceso de creación de aplicaciones web potentes y elegantes. Fue creado como método de aprendizaje, pero sigue creciendo y desarrollándose aún más.

Topics

Resources

Stars

30 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages