Você está na página 1de 12

03/02/2018 Programando Com Yii2: Utilitários

Advertisement

CODE > PHP

Programando Com Yii2: Utilitários


by Jeff Reifman 27 Dec 2016
Di culty: Intermediate Length: Short Languages: Português

PHP Yii Web Development Web Apps



This post is part of a series called How to Program With Yii2.

 Programming With Yii2: Routing and URL Creation

 Programming With Yii2: Using Ajax

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 1/12
03/02/2018 Programando Com Yii2: Utilitários

What You'll Be Creating

Se está se perguntando "O que é Yii?", veja a Introdução ao Yii Framework, em que
resenhamos os benefícios do Yii e incluimos uma visão geral do Yii 2.0.

O Que São Utilitários?


Na série Programando Com Yii2, guiamos leitores no uso do framework PHP, Yii2 
Nesse tutoral, proveremos uma visão rápida dos utilitários. No Yii, utilitários
são módulos agrupando códigos úteis para texto, arquivos, imagem, URL,
administração de HTML e outras coisas, além de serem fáceis de extender.

Também compartilharemos um exemplo de criação de um helper no Meeting Planner,


foco de outra série da Envato Tuts+.

Antes de começarmos, lembremo-nos, tentaremos participar da discussão nos


comentários. Quaisquer perguntas ou sugestões, deixe seu comentário ou nos contate
pelo Twitter, via @reifman.

Se percebeu a distância entre os episódios desta série, é porque passei por uma
cirurgia no cérebro, ano passado. Obrigado pela paciência e apoio—é muito legal
escrever regularmente de novo e quero dar continuidade à serie.

Bibliotecas Helper do Yii2


https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 2/12
03/02/2018 Programando Com Yii2: Utilitários

Essencalmente, utilitários são apenas módulos com código de suporte orientados a


tópicos. Eis uma lista dos utilitários do Yii2—Essa lista está mais atualizada que a
documentação e seus menus:

ArrayHelper simpli ca lidar com vetores, com funções para veri cação segura de
valores, mapas, mesclagem, etc.
Console ajuda com funcionalidade da linha de comando, recebendo entradas e
retornando texto colorido.
FileHelper estende recuros básicos do PHP para arquivos.
FormatConverter converte diversos formatos, basicamente datas, por enquanto.
Html gera tags HTML comumente usadas programaticamente
HtmlPuri er limpa texto de entrada dos usuário aumentando segurança.
Imagine provê recurso de manipulação de imagens com a extensão yii2-imagine.
In ector provê funções de texto úteis para transofrmações comuns.
Json codi ca e decodi ca dados em JSON.
Markdown converte markdown em HTML.
StringHelper funcionalidades extras para lidar com textos.
Url ajuda na criação programática de URLs e na lembrança delas para navegação.
VarDumper provê recurso avançado de var_dump.

Comumente, usamos os utilitários Html e Url pelas aplicações Yii. Lembremos que
usamos Imagine em Construindo Sua Startup com PHP: Con guração de Usuário,
Imagens de Per l e Dados de Contato, para dimensionar imagens.

Vejamos rapidamente alguns dos utilitários menos conhecidos.

ArrayHelper

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 3/12
03/02/2018 Programando Com Yii2: Utilitários

Como vemos, ArrayHelper provê várias funções voltadas para vetores.

Por exemplo, getValue simpli ca a busca por valores em chaves de vetores complexos:

01 // working with array


02 $username = \yii\helpers\ArrayHelper::getValue($_POST, 'username');
03 // working with object
04 $username = \yii\helpers\ArrayHelper::getValue($user, 'username');
05 // working with anonymous function
06 $fullName = \yii\helpers\ArrayHelper::getValue($user, function ($user, $defaultValue
07 return $user->firstName . ' ' . $user->lastName;
08 });
09 // using dot format to retrieve the property of embedded object
10 $street = \yii\helpers\ArrayHelper::getValue($users, 'address.street');
11 // using an array of keys to retrieve the value
12 $value = \yii\helpers\ArrayHelper::getValue($versions, ['1.0', 'date']);

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 4/12
03/02/2018 Programando Com Yii2: Utilitários

Ou map() cria um vetor simples de chave-valor a partir de um vetor mais complexo:

01 $array = [
02 ['id' => '123', 'name' => 'aaa', 'class' => 'x'],
03 ['id' => '124', 'name' => 'bbb', 'class' => 'x'],
04 ['id' => '345', 'name' => 'ccc', 'class' => 'y'],
05 ];
06
07 $result = ArrayHelper::map($array, 'id', 'name');
08 // the result is:
09 // [
10 // '123' => 'aaa',
11 // '124' => 'bbb',
12 // '345' => 'ccc',
13 // ]

HtmlPuri er

Podemos usar o HtmlPuri er para aprimorar a segurança ao lidar com entradas do


usuário. Por exemplo, se alguém enviar código de injeção de SQL no formulário acima,
limpá-lo com HtmlPuri er netralizaria qualquer ataque.

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 5/12
03/02/2018 Programando Com Yii2: Utilitários

1 echo HtmlPurifier::process($html);

Ele usa a biblioteca de código aberto HTML Puri er.

StringHelper

StringHelper provê alguns métodos extras para trabalhar com textos no PHP. Por
exemplo, truncateWords() reduz um texto a um número de palavras mas também
preservar o HTML dentro do resultado.

Criando Nosso Próprio Helper


Como o Meeting Planer, foco da série sobre startup, cresceu, achamos útil criar um
helper básico que pudéssemos usar. Por hora, combinamos tudo em um único,
MiscHelpers.php:

01 <?php
02 namespace common\components;
03 use yii;
04 use yii\helpers\Url;
05 use common\models\User;

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 6/12
03/02/2018 Programando Com Yii2: Utilitários

06
07 class MiscHelpers {
08 public static function buildCommand($meeting_id,$cmd=0,$obj_id=0,$actor_id=0,$au
09 ...
10 public static function backendBuildCommand($meeting_id,$cmd=0,$obj_id=0,$actor_i
11 ...
12 public static function isProfileEmpty($user_id)
13 ...
14 public static function getDisplayName($user_id,$no_email=false)
15 ...
16 public static function getTimezoneList()
17 ...
18 public static function fetchUserTimezone($user_id)
19 ...
20 public static function getUrlPrefix()
21 ...
22 }

Podemos ver vários metódos de diferentes tipos inclusos. Por exemplo,


getDisplayName() retorna ou um nome de usuário, email ou uma texto da junção do
primeiro e último nomes quando disponíveis.

É útil criá-los uma vez em um único lugar ao invés de reescrevê-los em vários modelos
quando necessários.

Criamos o MiscHelpers.php criando um arquivo em /common/componentes e


escrevemos uma classe que pudéssemos invocar pela aplicação.

A função buildCommand facilita criar links programaticamente para mensagens de email


de saída, o que inclui a possibilidade de autenticar usuários com $auth_key salva na
base de dados.

1 public static function buildCommand($meeting_id,$cmd=0,$obj_id=0,$actor_id=0,$auth_ke


2 // to do - build string of local or remote destination
3 // note: if change made, change in Message.php
4 return Url::to(['meeting/command','id'=>$meeting_id,'cmd'=>$cmd,'actor_id'=>$acto
5 }

Não há nada especial sobre o módulo a não ser que ele lembra o objetivo padrão dos
utilitários Yii mencionado antes.

Em qualquer lugar que quiser as funções de MiscHelpers, podemos usar o código a


seguir:

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 7/12
03/02/2018 Programando Com Yii2: Utilitários

1 <?php
2 use common\components\MiscHelpers;
3 ...
4 <tr>
5 <td style="color:#777; font-family:Helvetica, Arial, sans-serif; ...
6 Hi <?php echo Html::encode(MiscHelpers::getDisplayName($user_id)); ?>,

De acordo com o crescimento do Meeting Planner, provavelmente criaremos vários


utilitários organizados por tópicos.

Concluindo
Utilitários do Yii são como o nome diz, úteis. E, como programadores ócupados,
podemos não saber deles. Esperamos que tenham visto utilitários do Yii que serão
úteis com futuramente. E esperamos que a equipe do Yii continue expandindo-os a
cada atualização.

Esperamos que comece a construir seus próprios utilitários em suas aplicações ao


invés de duplicar métodos comuns para cada modelo.

Com o progresso da série Yii2, agradeceremos requisições de recursos e tópicos.


Podem postá-las nos comentários abaixo ou mandar por e-mail através do site
Lookahead Consulting.

Se quiser saber quando um tutorial novo sair, siga @reifman no Twitter ou veja a
página de instrutor. A página de instrutor terá todos os artigos dessa série tão logo
forem publicados.

Para explorar uma aplicação Yii2 mais avançada, veja a série sobre startup e o Meeting
Planner. A aplicação está em alpha mas é possível registrar reuniões com amigos.
Também é possível baixar o código dela. É código aberto.

Links Relacionados
Visão geral dos Utilitários—Documentação do Yii 2.0
Documentação do Utilitário Html do Yii2
Documentação do Utilitário Url do Yii2
Developer Exchange do Yii2
https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 8/12
03/02/2018 Programando Com Yii2: Utilitários

Advertisement

Jeff Reifman
Entrepreneur, technology writer

Jeff Reifman is a experienced technology consultant, former Microsoft Group


Program Manager, writer, activist and yogi. He's the founder of Meeting Planner
and author of the Envato Tuts+ series, Building Your Startup. He enjoys travel,
photography and snowboarding in his free time.

 lookahead_io

 FEED  LIKE  FOLLOW  FOLLOW

Weekly email summary


Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on
learning about the next big thing.

Email Address

Update me weekly

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 9/12
03/02/2018 Programando Com Yii2: Utilitários

Advertisement

Translations

Envato Tuts+ tutorials are translated into other languages by our community members—you can be involved

too!

Translate this post

Powered by

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 10/12
03/02/2018 Programando Com Yii2: Utilitários

0 COMENTÁRIOS Tuts+ Hub 


1 Iniciar sessão

Mostrar primeiro os mais votados


 Recomendar ⤤ Partilhar

Escreva o seu comentário...

INICIE SESSÃO COM O


OU REGISTE-SE NO DISQUS ?

Nome

Seja o primeiro a comentar!

✉ Subscrever d Acerca do DisqusAdicionar o DisqusAdicionar 🔒 Privacidade

Advertisement

ENVATO TUTS+ 

JOIN OUR COMMUNITY 

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 11/12
03/02/2018 Programando Com Yii2: Utilitários

HELP 

25,349 1,096 19,821


Tutorials Courses Translations

Envato.com Our products Careers

© 2018 Envato Pty Ltd. Trademarks and brands are the property of their respective owners.

Follow Envato Tuts+

https://code.tutsplus.com/pt/tutorials/programming-with-yii2-helpers--cms-26889 12/12

Você também pode gostar