Iniciativa PHP do jeito certo

Olá pessoal

Uma grande jogada para quem está iniciando no mundo PHP é dar uma olhada no site “PHP do jeito certo”.

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.

Valeu galera e até mais!

PHP do jeito certo (link): http://br.phptherightway.com/

Tablesorter: configurações e mapeamentos via classes css

Olá pessoal
Ao utilizar o plugin tablesorter, tive alguns problemas com ordenação de valores, datas e outros atributos. Acabei pesquisando e vi que não era o único.
Vi algumas soluções baseadas no plugin Jquery metadata, mas estava querendo evitar este overhead, já que posso trabalhar com configurações de classes a partir do próprio jquery.
Baseado em uma solução proposta no próprio stackoverflow (http://stackoverflow.com/questions/5672993/how-to-ignore-th-with-specific-class-name-in-tablesorter), acabei criando uma própria com os seletores.
Baixe o arquivo tablesorter no site do projeto
Abra o arquivo jquery.tablesorter.js e modifique:
– A variável “defaults” vai ficar com mais um atributo abaixo da chave debug : false
    debug: false,
noSorterClass: 'no-sorter'
– O método “checkHeaderMetadata” agora irá utilizar o valor da classe configurada para não inserir a coluna como “sortable”
function checkHeaderMetadata(cell, noSorterClass) {
if ((($.metadata) && ($(cell).metadata().sorter === false)) || $(cell).hasClass(noSorterClass)) {
return true;
};
return false;
}
E agora iremo modificar o método que utiliza o checkHeaderMetadata para que envie o valor da classe configurada. O método que o utiliza é o buildHeaders:
modifique o conteúdo
if (checkHeaderMetadata(this) || checkHeaderOptions(table, index)) this.sortDisabled = true;
por este

if (checkHeaderMetadata(this, table.config.noSorterClass) || checkHeaderOptions(table, index))    this.sortDisabled = true;
Agora em um arquivo javascript insira as configurações do tablesorter. Utilizei as configurações padrão do próprio plugin Tablesorter, então só vamos inserir o seguinte código:

$(function() {
function setupTablesorter() {

$.tablesorter.addParser({
id: "money",
is: function(s) {
return true;
},
format: function(s) {
return $.tablesorter.formatFloat(s.replace(/ /, '').replace('R$', '').replace(/\./, '').replace(/\,/, '.').replace(new RegExp(/[^0-9,]/g),""));
},
type: "numeric"
});


var classHeaders = {
'text': '.sorter-text',
'digit': '.sorter-digit',
'currency': '.sorter-currency',
'ipAddress': '.sorter-ipAddress',
'url': '.sorter-url',
'isoDate': '.sorter-isoDate',
'usLongDate': '.sorter-usLongDate',
'shortDate': '.sorter-shortDate',
'time': '.sorter-time',
'metadata': '.sorter-metadata',
'digit': '.sorter-digit',
'money': '.sorter-money',
};
        var tableHeaders = '', separator;
        $('.tablesorter').each(function (i, e) {
            var self = $(this);
$.each(classHeaders, function(key, value){
self.find(key).each(function (pos) {
                    if(separator == undefined)
separator = ',';
                    tableHeaders += separator +' '+ $(this).index()+' : { sorter: "'+key+'"}';
});
});
            $(this).tablesorter({ widgets: ['zebra'], dateFormat: 'uk', noSorterClass: 'no-sorter', headers: tableHeaders });
});
}
    if($('.tablesorter')[0])
setupTablesorter();
});
E agora é cria a tabela e inserir a classe “tablesorter” e as classes referentes a cada configuração em suas respectivas tags “th” e pronto! Está feito!Os arquivos estão disponíveis no meu Github para quem quiser porpôr melhores soluções. e farei um gist com eles.
Obrigado a todos e até mais!

Configurando o plugin PHPDocumentor do Sublime text 2 em ambiente Windows

Olá pessoal

Uma dica simples para configurar o PHPDocumentor no Sublime Text 2:

1. Instalando o PHPDocumentor

– Baixe o projeto via PYRUS/PEAR

PYRUS

php pyrus.phar install pear/PhpDocumentor

PEAR

pear install phpdoc/phpDocumentor-alpha

– Baixe o projeto via git

git clone https://raw.github.com/phpDocumentor/phpDocumentor2/develop/installer.php

– Baixe o projeto via composer

No arquivo composer.json insira

"require": "phpdocumentor/phpdocumentor": "dev-develop"

2. Acesse o arquivo install.php

php installer.php

3. Vá no Sublime Text 2 > Preferences > Packages Settings >phpDocumentor > Settings - User e insira o código

"executable_path": "php pasta-onde-está-o-php-documentor\bin\\phpdoc.php"

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!

Espero ter ajudado.

Curso MongoDB da 10Gen

Olá pessoal. Estava há algum tempo sem postar nada e decidi passar uma impressão de um curso que estou fazendo atualmente.

A empresa 10gen que desenvolve e fornece suporte ao MongoDB , disponibilizou o curso (gratuito, mas excelente diga-se de passagem) do Banco de dados não relacional (NoSQL) MongoDB, tendo 2 vertentes:

– “10gen: M101 MongoDB for Developers“, que aborda a utilização do MongoDB a nível de desenvolvimento;

– “10gen: M101 MongoDB for DBAs“, que aborda a utilização do MongoDB a nível de administradores de Banco de dados;

O nível do curso está REALMENTE acima do esperado, abordando várias vertentes no âmbito do mongodb em específico. Em janeiro vai iniciar uma nova turma e recomendo a todos que se inscrevam e se empenhem no curso, pois além do conhecimento, há uma possibilidade (altíssima a meu ver) de você utilizar este banco em específico em futuros trabalhos pela sia versatilidade e desempenho.

A quem tiver interesse, segue o link do curso:

https://education.10gen.com/dashboard