### Laravel ###
# Serão instalados:
xampp
composer
laravel
nodejs
gulp
elixir
Documentação: http://laravel.com/docs/5.1
# Instalar o Xampp
- Adicionar ao arquivo c:\xampp\apache\conf\httpd.conf, linha 58: (porta de escuta do http)
Listen [IP]:8090
# VirtualHost
Em C:\xampp\apache\conf\extra\httpd-vhosts.conf, adiciona:
ServerAdmin admin@localhost
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
ErrorLog logs/localhost_error.log
CustomLog logs/localhost_access.log common
DocumentRoot "C:\xampp\htdocs\workspace\gc\public"
ServerName gc.delfa
Options All Includes Indexes
Em C:\Windows\System32\drivers\etc\hosts, adiciona:
127.0.0.1 gc.delfa
# Habilitar conexão do php ao firebird
Descomentar no arquivo c:\xampp\php\php.ini:
extension=php_interbase.dll
extension=php_pdo_firebird.dll
Reinicie o apache.
# Composer
Instalação: https://getcomposer.org/doc/00-intro.md#installation-windows
# Instalar Laravel:
composer global require "laravel/installer=~1.1"
# Adicionar ao path do Windows:
C:\Users\[USUÁRIO]\AppData\Roaming\Composer\vendor\bin
# Criar projeto:
Dentro de C:\xampp\htdocs, abrir o shell do composer (botão direito > 'Use Compose here') e efetuar o comando:
laravel new projeto
# Criar model:
php artisan make:model Objeto
# Criar controller:
php artisan make:controller ObjetoController
# Config para firebird
Instalação: https://github.com/jacquestvanzuydam/laravel-firebird/tree/5.1-support
Em C:\xampp\htdocs\[PROJETO]\config\database.php,
substitui, na linha 29:
'default' => env('DB_CONNECTION', 'mysql'),
por
'default' => env('DB_CONNECTION', 'firebird'),
e adiciona na linha 50:
'firebird' => [
'driver' => 'firebird',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'B:\GC\GC-ATUAL.FDB'),
'username' => env('DB_USERNAME', 'sysdba'),
'password' => env('DB_PASSWORD', 'masterkey'),
'charset' => env('DB_CHARSET', 'WIN1252'),
]
Em C:\xampp\htdocs\[PROJETO]\config\app.php, comentar linha 125:
/*Illuminate\Database\DatabaseServiceProvider::class,*/
e adiciona:
Firebird\FirebirdServiceProvider::class,
Em C:\xampp\htdocs\[PROJETO]\.env, configurar da maneira abaixo:
DB_HOST=localhost
DB_DATABASE=B:\GC\GC.FDB
DB_USERNAME=sysdba
DB_PASSWORD=masterkey
DB_CHARSET=WIN1252
##### ADAPTAÇÃO PARA AS CONSULTAS FUNCIONAREM COM FIREBIRD #####
Em vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:
função 'where':
//CORREÇÃO PARA O FIREBIRD
$column = strtoupper($column);
//$operator = '\"'.$operator.'\"';
//$operator = strtoupper($operator);
Isso fará com que os condicionais fiquem em maiúsculo. Se não for, o firebird não reconhece devido às aspas.
função 'insertGetId':
//CORREÇÃO PARA O FIREBIRD
$values = array_change_key_case($values, CASE_UPPER);
#################
# Bootstrap
# Elixir
http://laravel.com/docs/5.1/elixir
# Instalar Nodejs: https://nodejs.org
Com o composer aberto dentro do projeto:
# Instalar Gulp:
npm install --global gulp
# Instalar Elixir:
npm install --no-bin-links
# Gerar CSS para produção:
gulp --production
# para gerar o CSS automaticamente:
gulp watch
# Criar CSS:
- Descomentar resources/assets/sass/app.scss e dentro dele criar o css.
- No arquivo gulpfile.js:
elixir(function(mix) {
var bootstrapPath = 'node_modules/bootstrap-sass/assets';
mix.sass('app.scss', 'public/assets/css')
.version('public/assets/css/app.css')
.copy(bootstrapPath + '/fonts', 'public/assets/fonts')
.copy(bootstrapPath + '/javascripts/bootstrap.min.js', 'public/assets/js');
});
Isso fará com que as fontes sejam copiados para a pasta 'public/assets/fonts',
os javascripts para 'public/assets/js' e
e os arquivos css sejam gerados na pasta 'public/assets/css'.
O .version gera um arquivo com um token em seu nome a cada vez que ele é modificado.
Para utilizar o arquivo criado com o .version:
#################
##### Definir usuário da conexão ao banco #####
- app/Providers/RouteServiceProvider, método boot:
session_start('conexao');
if( isset($_SESSION['usuario']) ) {
$usuario = $_SESSION['usuario'];
\Config::set('database.connections.firebird.username', $usuario);
\Config::set('database.connections.firebird.password', 'Gc@180376');
//Habilitar Debugbar apenas para determinados usuários
if( $usuario == 'ALEXANDREL' )
\Debugbar::enable();
else
\Debugbar::disable();
}
- vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers, método postLogin:
$_SESSION['usuario'] = $credentials['USUARIO'];
if( isset($_SESSION['usuario']) ) {
$usuario = $_SESSION['usuario'];
\Config::set('database.connections.firebird.username', $usuario);
\Config::set('database.connections.firebird.password', 'Gc@180376');
//Habilitar Debugbar apenas para determinados usuários
if( $usuario == 'ALEXANDREL' )
\Debugbar::enable();
else
\Debugbar::disable();
}
- vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers, método getLogout:
//Eliminar sessão de conexão
session_unset();
session_destroy();