2017 © Pedro Peláez
 

library sfphp

SimpleFramework(for)PHP

image

sincco/sfphp

SimpleFramework(for)PHP

  • Tuesday, May 1, 2018
  • by ivanmiranda
  • Repository
  • 1 Watchers
  • 0 Stars
  • 157 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 10 Versions
  • 4 % Grown

The README.md

saltamontes, (*1)

Saltamontes (sfphp)

Simple Framework (for) PHP

Simplificando al máximo las características de todo framework para PHP, este permite ser un punto de entrada para quienes aún no están utilizando alguno, o desean entender cada elemento que lo componen., (*2)

Haciendo uso de patrones singleton y una implementación sencilla y en el manejo de vistas, Sfphp, te puede ayudar a desarrollar una aplicación en un menor tiempo y organizando tus códigos de mejor manera., (*3)

Instalación

Integra a tu aplicación con Composer, (*4)

{
    "repositories": [
      {
        "type": "vcs",
        "url": "https://github.com/sincco/sfphp"
      }
    ],
    "require": {
        "sincco/sfphp": "dev-master",
        "desarrolla2/cache":  "~2.0",
        "twig/twig":  "~1.0"
    }
}

Creación de app

Esto dejará una nueva estructura de directorios dónde comenzarás a alojar tu aplicación, (*5)

App
|-Core
|-Controladores
|-|-Inicio.php
|-Modelos
|-Vistas
Etc
|-Cache
|-Config
|-|-config.xml
|-Logs
|-Sesiones
Libs
O

Clona el branch skeleton, con una app sencilla de ejemplo, (*6)

Configuracion

General de la APP

<app>
    <key>la clave generada por el script iniciar.php o que puedes obtener desde el script llave.php</key>
    <name>nombre de la app</name>
    <company>sincco</company>
        <cache>segundos</cache>
        <eemailapi>API de ElasticMail</eemailapi>
</app>

Front end

<front>
    <url>http://tudominio.com/</url>
</front>

Bases de datos

Sólo puedes tener una por default (a la que se conectan todos los modelos por defecto), pero tantas como necesites con un identificador distinto, (*7)

<bases>
    <default>
        <host></host>
        <user></user>
        <password>encriptado con la llave de la app, puedes usar en script encriptar.php?s=password</password>
        <dbname></dbname>
        <type>firebird|mysql|sqlsrv|otro</type>
    </default>
</bases>

Opciones de desarrollo

<dev>
    <log>1|0 activa el log del framework (en Etc/Logs)</log>
    <showerrors>1|0 muestra los errores propios del framework en pantalla</showerrors>
    <showphperrors>1|0 muestra los errores de php</showphperrors>
        <querylog>1|0 activa un log de querys ejecutados</querylog>
        <contact>correo de contacto para soporte</contact>
</dev>

Base de datos

ORM

$tabla = $this->getModel();
$tabla->candidatosCabecera('idCandidato');
$tabla->innerCodigosAcceso(['USING'=>'idCandidato']);
$tabla->filterIdCandidato([1,2,3]);
$tabla->fieldsCandidatosCabecera(['idCandidato','paterno','materno','nombre']);
foreach ($tabla->getCollection() as $registro) {
    echo "<pre>";var_dump($registro->idCandidato, $registro->idCodigo, $registro->codigo);echo "</pre>";
    $registro->genero = 'Prefiero no decir';
    $registro->nacionalidad = NULL;
    echo $registro->save();
}
$tabla->candidatosCabecera('idCandidato');
$tabla->paterno = 'Este';
$tabla->materno = 'Es';
$tabla->nombre = 'Mi Nombre';
echo $tabla->save();

Cache

Peticiones

Cada petición se procesa seccionando la URL del siguiente modo:, (*8)

dominio.com/[modulo]/controlador/accion/[(parametro1/valor1)...(parametron/valorn]

El controlador y accion por defecto son 'inicio', por lo que, al no recibirse dentro de la URL, estos son los que se ejecutarán de forma inmediata, así que deben existir dentro de tu estructura de archivos., (*9)

Parametros get

Los parametros se procesan de forma lineal, por lo que, si no llevan el orden correcto, no podrás encontrar el valor que necesitas., (*10)

.../fruta/manzana/color/rojo

Se traduce en el siguiente arreglo:, (*11)

(['fruta'] => ['manzana']) ,
(['color'] => ['rojo']) 

Mientras que, si se rompe el patrón:, (*12)

.../fruta/color/rojo

se obtiene:, (*13)

(['fruta'] => ['color']) ,
(['rojo'] => NULL) 

Log de errores

Ejecutando el script error_notification.php se envia un correo a la direccion configurada con el log actual de errores., (*14)

Nginx

Configuración básica para un vhost en Nginx, (*15)

server {
        listen       80;
        listen       [::]:80;
        server_name sitio;
        index index.php;
        client_max_body_size 2M;
        root /var/www/html/sitio;
        proxy_set_header    Host              $host;
        proxy_set_header    X-Real-IP         $remote_addr;
        proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;

        # Don't serve hidden files.
        location ~ /\. {
                deny all;
        }

        location = /favicon.ico {
                log_not_found off;
        }

        location / {
                try_files $uri /index.php?$args;
        }

        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;

                #Activar CACHE PHP
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
                fastcgi_ignore_client_abort off;
                fastcgi_connect_timeout 60;
                fastcgi_send_timeout 90;
                fastcgi_read_timeout 90;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 256k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_cache CZONE;
                fastcgi_cache_valid   200 302  1h;
                fastcgi_cache_valid   301 1h;
                fastcgi_cache_min_uses  2;
        }

        #Para Framewok de PHP
        if (!-e $request_filename){
                rewrite ^(.+)$ /index.php?url=$1 break;
        }

        error_log /var/www/__logs/error error;
}

NOTICE OF LICENSE

This source file is subject to the Open Software License (OSL 3.0) that is available through the world-wide-web at this URL: http://opensource.org/licenses/osl-3.0.php, (*16)

Happy coding! - ivan miranda, (*17)

The Versions

26/03 2018
10/06 2017

2.0.x-dev

2.0.9999999.9999999-dev

SimpleFramework(for)PHP

  Sources   Download

MIT

The Requires

 

framework sfphp sincco

29/11 2016

1.0.1

1.0.1.0

SimpleFramework(for)PHP

  Sources   Download

MIT

The Requires

 

framework sfphp sincco

23/11 2016

1.0

1.0.0.0

SimpleFramework(for)PHP

  Sources   Download

MIT

The Requires

 

framework sfphp sincco

01/11 2016

dev-Views

dev-Views

SimpleFramework(for)PHP

  Sources   Download

MIT

The Requires

 

framework sfphp sincco