- Apache Conf (Apache config highlighting)
- Auto Close Tag (HTML/XML stuff)
- Badges (Markdown badges snippets)
- Beautify (HTML/JS/CSS/SASS formatting)
- Bower (Bower management)
- Code Runner (code runner - d'oh!)
- Color Info (CSS color info tooltips)
- Composer(Composer management)
<?php | |
namespace App\Entities; | |
use UnexpectedValueException; | |
use Illuminate\Database\Eloquent\Builder; | |
trait HasCompositeKey | |
{ | |
/** |
<?php | |
// Supondo que o formulário tenha um campo <input type="file" multiple /> chamado "images" | |
collect($request->images)->each(function ($image) { | |
// gera nome único para arquivo automaticamente (ex: 72237093253032091088276430939206.jpg) e salva na raiz | |
$filename = $image->storePublicly('.', 's3'); | |
// usa nome original do arquivo, salva numa "pasta" para o artigo (ex: articles/3/cover.png) | |
$filename = $image->storePubliclyAs($image->getClientOriginalName(), "articles/{$article_id}", 's3'); |
<?php | |
class PostController | |
{ | |
public function __controller(PostRepository $postRepository) | |
{ | |
$this->postRepository = $postRepository; | |
} | |
public function index() |
server { | |
listen 80; | |
server_name www.dominio.com.br; | |
return 301 $scheme://dominio.com.br$request_uri; | |
} |
<?php | |
// Requires Laravel | |
$json = <<<JSON | |
[{"name": "Taylor Otwell", | |
"country": { | |
"name": "United States" | |
} | |
}, |
<?php | |
$xml = <<<XML | |
<?xml version="1.0" encoding="ISO-8859-1"?> | |
<Person> | |
<Name>{name}</Name> | |
<Age>{age}</Age> | |
<Gender>{gender}</Gender> | |
</Person> | |
XML; |
<?php // app/Support/Auth/Passwords/DatabaseTokenRepository.php | |
namespace App\Support\Auth\Passwords; | |
use Carbon\Carbon; | |
use Illuminate\Auth\Passwords\DatabaseTokenRepository as BaseRepository; | |
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; | |
use Illuminate\Auth\Passwords\TokenRepositoryInterface as RepositoryContract; | |
class DatabaseTokenRepository extends BaseRepository implements RepositoryContract |
Suponha que você tenha um pacote para aplicações Laravel ou ainda um módulo de sua aplicação que é desenvolvido independente dela.
Como tratar em seu próprio pacote/módulo determinadas exceções que o framework ou a aplicação podem gerar, substituindo o exception handler deles quando for conveniente e ao mesmo tempo delegando a eles exceções que você não irá tratar? 🤔
Aplicando o Decorator pattern. 😄
Observe esta implementação de pacote:
src/Exceptions/Handler.php
A configuração de ambiente é um tópico que mudou consideravelmente entre as versões 4.2, 5.0 e 5.1 do Laravel. Nessa evolução algumas coisas mudaram e infelizmente a documentação não necessariamente acompanhou as novidades de flexibilização de configuração.
Uma coisa que está documentada mas não é necessariamente explícita/clara é a possibilidade de compartilhar uma mesma aplicação em mais de um ambiente de configuração.
Imagine que você queira compartilhar uma aplicação para o ambiente de homologação (staging) e produção (production) apenas trocando as configurações de ambiente com base no domínio servido. Nos tempos do Laravel 4.x isso era configurado através de um recurso do próprio framework. Como você faria isso hoje? 🤔
Usando diferentes arquivos .env
por ambiente, de modo que você pode ter um .env.staging
para a homologação, um .env.production
para a produção, um .env.testing
para testes, etc. 😀
Mas como definir qual o ambiente que está sendo usado? Através da variável