Arquivo do Autor: Angelito

Excluindo registros duplicados no MySQL

Vamos supor que você possua uma tabela e por algum motivo os registros da tabela foram duplicados. Agora imagine que são milhares de registros e que você não pode ficar procurando os registros repetidos um a um.

Para isto, temos um comando SQL mágico, que irá remover os registros duplicados, mantendo apenas uma cópia de cada.

Continue lendo

Utilizando migrations no CakePHP 3

cakephp_logoMigrations é um recurso que permite ao desenvolvedor, controlar as alterações realizadas na estrutura da sua base de dados, permitindo assim, um versionamento melhor do banco de dados. No final das contas são arquivos PHP que estendem a classe AbstractMigration e através da API disponibilizada pelo CakePHP, constroem e modificam a base de dados.

Neste pequeno post, vou mostrar como instalar o plugin Migrations e executar uma migração básica. Para isto, assumo que você tenha familiaridade com o Composer e com o CakePHP.

Para instalar o plugin, o jeito mais fácil é utilizar o Composer:

Continue lendo

Analisando e Otimizando Tabelas no MySQL

No MySQL, quando uma tabela sofre constantes inserções e remoções, podem haver certos problemas relacionados a performance.

Para solucionar estes problemas, os comandos analyze e optimize podem ser utilizados. Basicamente eles analisam e otimizam as tabelas respectivamente. Seria como uma espécie de “desfragmentação” das tabelas.

Para fazer o procedimento de análise e otimização, basta executar os comandos:

Continue lendo

Novidades do PHP 7 – Parte 4/5: Return Type Declarations

A chegada do PHP 7 trouxe mudanças que deram ao PHP, características de uma linguagem fortemente tipada. Dentre elas estão scalar type hints e return type declarations, ou declaração de tipos de retorno.

Agora, quando construímos um método ou função, podemos definir o tipo de retorno que este deve ter. Por exemplo:

Continue lendo

Novidades do PHP 7 – Parte 3/5: Null Coalesce Operator

Na web, principalmente no processamento de formulários, diversas vezes precisamos checar se algo existe. Normalmente isto pode ser feito através da função isset ou algo semelhante.

Vamos imaginar um formulário de contato, onde precisamos verificar se o campo nome existe. No modo antigo, poderia ser feito desta maneira:

$nome = (isset($_POST['nome'])) ? $_POST['nome'] : 'sem nome';

No exemplo acima, verificamos se a variável $_POST[‘nome’] existe. Caso exista, atribuimos seu valor a variável $nome. Caso não exista, atribuimos a string ‘sem nome‘ a variável $nome.

Com o null coalesce operator, a mesma coisa pode ser feita de uma forma mais fácil e simples:

$nome = $_POST['nome'] ?? 'sem nome';

Com certeza o null coalesce operator era algo que estava faltando no PHP.

O próximo post será sobre return type declarations.

Até a próxima 😉

Novidades do PHP 7 – Parte 2/5: Scalar Type Hints

O PHP é uma linguagem fracamente tipada, ou seja, não dá muita bola em relação a tipos de dados. Uma variável pode conter um float, logo depois uma string e no final ainda pode se tornar um objeto.

Muitos não gostam do PHP por causa deste excesso de liberdade. Com a chegada do PHP 7, foi introduzido um recurso chamado scalar type hints, ou indução de tipo escalar. Assim, o programador pode definir o tipo de parâmetro que um método deve receber, o tipo de retorno de uma função, etc.

Continue lendo

Novidades do PHP 7 – Parte 1/5: Spaceship Operator

Com o lançamento do PHP 7, vou fazer uma série de pequenos posts falando sobre as principais novidades da linguagem. No post de hoje, vou começar falando do spaceship operator, ou em português, operador espaçonave.

O spaceship operator tem um funcionamento bastante semelhante do da função strcmp. Ele basicamente faz uma comparação e traz os seguintes retornos:

Continue lendo

Velocímetro opensource para iOS

Captura de Tela 2015-12-07 às 22.18.44Com o lançamento das novas versões do Xcode e iOS, resolvi fazer um aplicativo para iOS utilizando a nova linguagem da Apple, Swift. Foi assim que saiu o Speedometer.

O Speedometer é um velocímetro digital para iOS que pode ser utilizado com diversas unidades de medida, como quilômetros por hora (km/h), milhas por hora (mph), pés por segundo (ft/s), etc.

Continue lendo