Uma dica bem simples para quem está fazendo algum site em PHP (independente de Framework). A grande maioria dos frameworks possuem a feature de minificação da saída de HTML. Isso é muito útil pois melhora o tempo de carregamento do site/aplicação para os seus usuários.
Fiz este gist pra mostrar uma forma bem simples de como usar a minificação, caso não haja um suporte padrão.
Claro que esse Regex deve ser melhorado, mas a idéia seria basicamente esta. Existem também algumas configurações a serem feitas no seu servidor que já facilitam bastante, mas fica para um próximo post.
Para quem já tentou utilizar TDD (Test Development Driven) no Codeigniter percebeu que sofria horrores para conseguir. Para isso Tatsuya Fukata criou uma biblioteca, a CIUnit, e a deixou disponível no Github (https://github.com/fukata/CIUnit-for-CI2). Este post vai mostrar como é bem simples fazermos testes unitários utilizando este componente.
Seu acoplamento é bastante simples:
Github – Projeto CIUnit
Faça o download do Codeigniter e descompacte-o no seu servidor local. Após isto faça o download do projeto CIUnit e insira os arquivos do projeto no diretório “application/third_party/” da sua aplicação;
Passando por estas etapas, abra a linha de comando e insira os comandos:
cd pasta-do-seu-projeto/
phpunit --testdox
Dica: Caso esteja usando o phpunit via composer, você pode utilizar os comandos:
cd pasta-do-seu-projeto/
php vendor/phpunit/phpunit/composer/bin/phpunit --testdox
Pronto, se tudo deu certo você verá a mensagem de tudo ok na aplicação.
Em um projeto tive a necessidade de utilizar alguns recursos de um template engine e olhando alguns achei interessante trabalhar com o twig (http://twig.sensiolabs.org/).
Twig Template engine
Já existe uma biblioteca no Codeigniter para trabalhar com o Twig, o Codeigniter Twig (https://github.com/altrano/codeigniter-twig) que é de fácil acoplamento, basta fazer o download dos arquivos, inseri-los na aplicação e carregar no controller que vá usá-lo. Ele faz o processo de carregamento automático dos helpers inseridos no arquivo de autoload da aplicação.
application/config/twig.php Link do gist : https://gist.github.com/4550897
Baixado os arquivos do projeto Codeigniter Twig no github e inseridos no projeto, vamos começar a integração Primeiro vamos inserir o composer na aplicação. Iremos criar a requisição do Twig no arquivos composer.json. Crie um arquivo composer.json na raíz do projeto com as informações:
Semana passada aconteceu mais uma rodada de mini-cursos e palestras na empresa e dessa vez o tema que abordei foi “Framework ou CMS?”, uma mini-palestra mostrando os pontos fortes e fracos dos Frameworks e CMS , comparativo de alguns em diversas linguagens e quando utilizá-los.
A quem utiliza o scaffolding Grocery CRUD (http://www.grocerycrud.com/) nos projetos com o Codeigniter fiz uma colaboração no projeto criando um novo tema para ele com base no Twitter bootstrap (http://twitter.github.com/bootstrap/) pelo fato da grande absorção dele em grandes projetos e de todas as suas facilidades para interações, UX e outros aspectos.
Github do projeto
Para quem quiser testar e/ou utilizá-lo em suas aplicações para verificar o seu uso, o projeto mais atual com o tema pode ser encontrado no repositório do próprio projeto no Github (https://github.com/scoumbourdis/grocery-crud).
Espero que vocês gostem do resultado, ainda estou aprimorando-o, então toda sugestão e crítica é sempre bem-vinda e acima de tudo todos podem colaborar na melhora do projeto!
Pretendo participar do novo projeto do grocery CRUD 2.0 que deve focar alguns outros aspectos como interoperabilidade atendendo a alguns PSR’s como o PSR-0 e o PSR-1, testes unitários, melhoras de performance, dentre outros para que possa ser utilizado em qualquer projeto PHP!
Uma grande jogada para quem está iniciando no mundo PHP é dar uma olhada no site “PHP do jeito certo”.
php do jeito certo
Alguns (vários) desenvolvedores PHP se queixam de algunsm exemplos de documentação para estudo, exemplos, etc. Daí surgiu a idéia do site. E o melhor, como o projeto tem um repositório no Github quem estiver interessado pode colaborar com o projeto.
4. Faça o teste! Com o plugin “SideBarEnhancements” instalado, clique na pasta do projeto no sublime text com o botão direito e escolha a opção phpDocumentor > Generate Documentation e pronto! Código de documentação gerada!
Para quem já conhece o editor Sublime Text, tem real noção do seu poderio. Um editor muito rápido, versátil e que cabe no seu pendrive. Caso você não conheça, recomendo que leia este link. Não falarei sobre este tópico pelo fato deste post ter a idéia de ser mais “mão-na-massa”.
Antes da listagem uma configuração interessante que você pode implementar no seu editor é indo em PREFERENCES > SETTINGS-USER e insira est trecho de código:
{
"color_scheme": "Packages/Color Scheme - Default/Twilight.tmTheme",
"default_line_ending": "unix",
"ignored_packages":
[
"Vintage"
],
"trim_trailing_white_space_on_save": true
}
Este trecho de código deixa sua linha finalizadora padrão no formato UNIX (linha 2) e remove espaços em branco à direita automaticamente quando você salva o arquivo.
Caso esteja usando Linux (no meu caso específico o Ubuntu), logo após isso vá no menu: PREFERENCES > KEY BINDINGS – USER e insira este código:
[
{ "keys": ["ctrl+'"], "command": "show_panel", "args": {"panel": "console", "toggle": true} }
]
Agora sim vamos ao setup dos plugins que você deve ter no Sublime Text
1 – Gerenciador de pacotes
Este na verdade é o plugin inicial para todos os usuários do Sublime TextDepois do Sublime Text já instalado no seu computador, abra-o e clique no atalho ” CTRL+’ ” para que apareça a linha de comando do editor. insira o código contido neste link e reinicie o sublime para que ele reconheça o gerenciador de pacotes.
2 – Zen Coding
Plugin que aumenta a produtividade na criação de arquivos HTML/XHTML. Possui uma lista vasta de atributos.
3 – Jquery snippets pack
Snippet que incorpora um conjunto de snippets referentes ao Jquery.
4 – Prefixr
Essa é para quem curte algumas features do css3. Ele transforma os atributos css para formatar a compatibilidade com os outros browserz.
5 – Placeholders
Insere conteúdo temporário para testes. Muito bom para dinamizar o trabalho.
6 – Alignment
Alinhamento do curso em seleções múltiplas.
7 – Clipboar History
Mantém um histórico de trechos de códigos diversos que tenhamos copiado com o CTRL+C.
8 – SublimeREPL
Com ele você pode executar seu interpretador padrão dentro do próprio Sublime Text
9 – DetectSyntax
Este plugin detecta a sintaxe que está sendo escrita no editor de maneira automática.
10 – Nettuts + Fetch
Com este plugin você configura todos os seus repositórios, dividindo-os entre arquivos e pacotes, podendo inserir atalhos para eles. Muito prático para arquivos que você utiliza com certa frequência nos seus projetos, como jquery, frameworks específicos, etc. Ao inserir o atalho ele faz o download direto do diretório CDN, Github, etc que você cadastrou.
11 – SFTP
Esse é um dos mais simples e ao mesmo tempo um dos melhores plugins. Com ele você poderá fazer upload e download de arquivos, pastas ou até do projeto inteiro do seu servidor via FTP. Uma espécie de Filezilla incorporado.
12 – Bracket Highlighter
Ele marca de cor diferente o escopo de uma função, de um bloco lógico, loop, dentre outros que você esteja com o cursor.
13 – Nodejs
Snippet para trabalhar com Node.js no Sublime Text. REALMENTE necessário.
14 – DocBlockr
Monta um bloco de documentação de sua classe, com alguns formatos previamente cadastrados.
15 – PHPDoc
Com ele você poderá documentar métodos das classes muito mais rápida no formato PHPDoc.
16 – Codeigniter Snippets
Snippets do framework Codeigniter. Como utilizo ele em vários trabalhos, este snippet tem um lugar reservado em meus projetos.
17 – PHPUnit
Plugin que proporciona o suporte ao PHPUnit nativo no Sublite Text.
18 – Aditional PHP Snippets
Alguns snippets para quem desenvolve na pliguagem PHP.
19 – PHP Syntax Checker
Este plugin checa e avisa a linha que está com erros de sintaxe.
20 – SideBarGIT
Ele integra o GIT no Sublime Text via sidebar. Não conhece o GIT? Leia sobre o assunto aqui
Tem um vídeo legal do Zeno no youtube, onde ele demonstra o funcionamento do sublime text 2.
Lembrando que este são SOMENTE alguns dos plugins que este editor possui. Ele tem plugins diversos para Python, Ruby, C#, Jade, Coffescript, Frameworks diversos. Pelo fato do sublime ser altamente extensível, leve, prático e aceita colaboração de seus usuários, acredito que este seja só o início de uma ferramenta excelente. Apesar de pago, você pode usá-lo mesmo sem pagar nada, mas acho bastante válido o pagamento que na verdade é bastante razoável se vermos suas vantagens dentre os demais.