fol/fol

PHP framework

Installs: 135

Dependents: 0

Stars: 5

Watchers: 1

Forks: 1

Open Issues: 0

v7.5.1 2016-01-18 18:48 UTC

README

(o resto da gaita xa é cousa túa)

Build Status

FOL é un (micro)framework escrito en PHP por Oscar Otero. Como é algo persoal que non pretende ter moita repercusión (hai miles de frameworks en PHP), escribo a documentación en galego por comodidade e por se alguen máis de aquí lle interesa.

Requerimentos:

  • PHP 5.5
  • Composer

Instalación

Crea o teu proxecto:

$ composer create-project fol/fol o-meu-proxecto

A primeira vez que se executa créase o arquivo .env (para variables de entorno) e o directorio data/logs (para gardar logs). Comproba que os permisos son os adecuados.

App

A clase App\App (aloxada en app/App.php) é a que xestiona a páxina web. Mira fol-core para máis información.

Liña de comandos

Fol usa Robo como xestor de tarefas. Polo que edita o arquivo RoboFile.php para meter aí os comandos que queiras.

Só hai un comando definido por defecto que é robo run, que o que fai é lanzar un servidor de php, executa gulp e usa BrowserSync para sincronizar os cambios.

Deploy

Podes usar Deployer para facer deploy ao servidor que queiras. Xa inclúe un arquivo deploy.php con toda a configuración que podes personalizar.

Gulp

Tamén trae un arquivo gulp preparado para xestionar os css/js/imgs. Os arquivos orixinais gárdanse no directorio "assets" e gulp procésaos e pásaos ao directorio "public".

Configuración do servidor

En Apache

Ainda que funciona sen facer nada, o mellor é establecer como documentRoot o directorio public:

<Directory "/var/www/fol/public">
    Order allow,deny
    Allow from all
</Directory>

Se queres meter o teu proxecto nun subdirectorio (por exemplo http://localhost/fol) podes poñer o proxecto fora do documentRoot e crear un alias:

<IfModule alias_module>
    Alias /nome-proxecto /os-meus-proxectos/fol
</IfModule>

<Directory "/os-meus-proxectos/fol/public">
    Order allow,deny
    Allow from all
</Directory>

En Nginx

Tes que editar o arquivo de configuración (nginx/sites-enabled/default):

server {
    root /var/www/fol/public;

    charset utf-8;

    location ~* \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    # Deny access for hidden
    location ~ /\. {
        deny all;
    }

    # Manage all request
    location / {
        try_files $uri @public;
    }

    # Headers for assets
    location ~* .*\.(css|js|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff|eot|ttf)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
        try_files $uri @public;
    }

    # This is the public location, called in each request
    location @public {
        if (!-f $request_filename) {
            rewrite ^(.*)$ /index.php last;
        }
    }
}