fol / fol
PHP framework
Requires
- php: >=5.5.0
- aura/router: ^3.0
- codegyre/robo: 0.x
- fol/core: ^11.1
- league/plates: ^3.1
- oscarotero/env: ^1.0
- oscarotero/folk: ^1.8
- oscarotero/psr7-middlewares: 3.x
- relay/relay: 1.x
- vlucas/phpdotenv: 2.x
- willdurand/negotiation: ^2.0
- zendframework/zend-diactoros: 1.x
- dev-master
- v7.8.1
- v7.8.0
- v7.7.0
- v7.6.0
- v7.5.1
- v7.5.0
- v7.4.0
- v7.3.0
- v7.2.0
- v7.1.0
- v7.0.2
- v7.0.1
- v7.0.0
- v6.0
- v5.1
- v5.0
- v4.0
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.0
- v3.1.0
- v3.0.0
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.0
- v2.0.1
- v2.0.0
- v1.7.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.0
- v0.15.0
- v0.14.3
- v0.14.2
- v0.14.1
- v0.14.0
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.1
- v0.12.0
This package is auto-updated.
Last update: 2022-02-01 12:20:45 UTC
README
(o resto da gaita xa é cousa túa)
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
- Node 4+
Instalación
composer create-project fol/fol o-meu-proxecto
cd o-meu-proxecto
npm install
cp .env.example .env
mkdir -m 0777 data
mkdir -m 0777 data/logs
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".
PHP-PM
Se queres, tamén podes usar php-pm para lanzar a web. Tes que instalar o Psr-7 bridge:
# change minimum-stability to dev in your composer.json (until we have a version tagged): "minimum-stability": "dev" composer require php-pm/php-pm:dev-master composer require php-pm/psr7-adapter php vendor/bin/ppm config --bootstrap=App\\PPM php vendor/bin/ppm start
Configuración do servidor
En Apache
Xa hai un arquivo .htaccess preparado, simplemente tes que permitir usalo:
<Directory "/var/www/fol/public">
AllowOverride All
</Directory>
Se queres meter o teu proxecto nun subdirectorio (por exemplo http://localhost/blog) podes poñer o proxecto fora do documentRoot e crear un alias:
<IfModule alias_module>
Alias /blog /var/www/blog/public
</IfModule>
<Directory "/var/www/blog/public">
Options +FollowSymLinks
AllowOverride All
</Directory>
Para que alias funcione, necesitas usar a directiva RewriteBase
no .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
# Handle front controller
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
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;
}
}
}