Usando magic methods com php

Hora ou outra a gente se depara com algumas funcionalidades que uma linguagem pode nos proporcionar. Às vezes até hesitamos em mudar nossos conceitos, mas é sempre bom tentar enxergar se determinada opção na linguagem vale a pena de ser usada na implementação. O problema é que eu tinha uma classe a fazer, com 50 atributos e estava com uma preguiça danada de escrever todo o código (sei que existem ferramentas que resolvem o caso - http://www.card2u.com.my/ClassBuilder/ ou http://www.phpclasses.org/browse/package/4794.html que geram o código e ainda oferece uma modelagem MVC com suporte à conexão nativa) mas precisava de algo mais “crú”. Então, veja o que os magic methods __get() e __set() fazem por você nessas horas:

Aqui uma classe teste

 
<?
 
class Class1 {
 
 
//Lista de atributos
 private $var1;
 private $var2;
 private $var3;
 
 
 
/*
* Método mágico que retorna os valores das variáveis privadas.
*
*/
 
  public function __get($atributo)
    {
        if (isset($this->{$atributo}))
        {
            if ($this->{$atributo})
                return $this->{$atributo};
        }
        else
        {
            return false;
        }
    }
 
 
/*
* Método mágico para atribuir valores nas variáveis privadas. 
*
*/
 
   public function __set($name, $value) {
        $this->$name = $value;  
   }
 
 
}
?>

Testando a classe Class1

<?
 
//Declaração
$classe1 = new Class1();
//Atribui 'Valor 1' a $var1
$classe1->var1 = "Valor 1";
//Atribui 'Valor 2' a $var2
$classe1->var2 = "Valor 2";
 
print $classe1->var1;
print $classe1->var2;
 
?>

Pronto, não precisei me preocupar em escrever getters e setters para os atributos da classe.

Enviado em 1/11/2009 na categoria Web, Dicas, PHP 4 Comentários »


Abrindo arquivos PPTX

Hoje tive um problema com um formato que até então era desconhecido para mim: a extensão pptx. Usuários do Office 2003 não conseguirão abrir este tipo de arquivo porque é exclusivamente para a versão 2007 do PowerPoint. No entanto, a Microsoft disponibiliza um conversor gratuito. Clique aqui para abrir o link. Depois de instalado abra o arquivo pptx que irá aparecer um prompt para salvar no formato da versão do PowerPoint instalada na sua máquina.

Enviado em 30/08/2009 na categoria Windows, Dicas 3 Comentários »


Problema ao abrir arquivos de ajuda .chm do Windows

Os arquivos de ajuda no formato .chm são na verdade arquivos html compilados com índices de pesquisa, para executá-los usa-se geralmente o programa Microsoft® HTML Help Executable que já vêm na versão do Windows XP. No entanto a Microsoft deve ter percebido que esses tipos de arquivos poderiam representar uma falha de segurança e para que o usuário abra algum arquivo da internet deverá que desbloquá-lo. Se você baixou e tentou abrir algum arquivo .chm e apareceu algum problema deste tipo: (Ação Cancelada. O Internet Explorer não conseguiu se conectar à página da Web solicitada. A página pode não estar disponível no momento) ou (A página não pode ser exibida. A página que você procura não está disponível no momento. Talvez o site esteja passando por dificuldades técnicas ou você precise ajustar as configurações do navegador.) é porque o arquivo está bloqueado e não pode ser utilizado.

Para desbloquar o arquivo clique com o botão direito no seu ícone, vá até Propriedades e clique em “Desbloquear”. Feche as propriedades e tente abrir novamente.

Enviado em 9/11/2008 na categoria Windows, Segurança, Dicas 6 Comentários »


Erro Subsistema Windows 16 bits

Quando fui instalar o driver Twain estava dando o erro “subsistema windows 16 bits”, esse problema ocorre quando
existem arquivos corrompidos (command.com, autoexec.nt e config.nt).

Para resolver baixei e executei este fix (XP_FIX.exe 140kb).

Enviado em 14/10/2008 na categoria Windows, Dicas 5 Comentários »


Retornando o nome da classe de um Objeto no Java

O nome da classe pode ser retornada com as seguintes funções:

1
2
//Retorna todo o nome da classe incluindo seu pacote
meuobjeto.getClass().getName();

ou

1
2
//Retorna apenas o nome da classe 
meuobjeto.getClass().getSimpleName();

Enviado em 14/10/2008 na categoria Java 1 Comentário »


O servidor RPC não está disponível

Hoje me deparei com esse erro chato na geração de alguns relatórios em Fortes Report (ainda uso sim!) usando Delphi. Na geração mostrava a mensagem de erro do sistema: “O servidor RPC não está disponível”. Depois de fuçar um pouco verifiquei que como não havia impressora instalada o serviço de spool do Windows estava desativado. Nos Serviços do Windows (Painel de Controle -> Ferramentas Administrativas - Serviços) procure por Spooler de Impressão e se estiver parado clique em Iniciar. Aqui funcionou.

Enviado em 15/09/2008 na categoria Windows, Dicas, Delphi 22 Comentários »


Ordenando resultados de consultas com valores numéricos

O caso não é incomum, as vezes precisamos ordenar uma consulta por determinada coluna de caracteres, mas que contenha valores numéricos. Se você ordernar um campo desse tipo os resultados irão sair assim:

SELECT numerocontrato FROM contrato ORDER BY numerocontrato ASC

resultado:
* 1
* 10
* 11
* 123
* 1234
* 2
* 25
* 253
* 34

Para resolver esse problema use a função ABS(), assim:

SELECT numerocontrato FROM contrato ORDER BY ABS(numerocontrato) ASC

Enviado em 4/09/2007 na categoria Banco de Dados, Dicas, SQL 1 Comentário »


Copiando uma imagem de uma pasta para outra usando Java

Escrevi um post que dizia como copiar um arquivo de um diretório para o outro usando FileChannel, no entando não serve para copiar imagens (arquivos binários). Para copiar uma imagem de uma pasta para outra use BufferedImage e ImageIO:

Usando uma imagem externa ao seu projeto:

File imagem_file = new File(”exemplo.jpg”);
BufferedImage imagem_buffered = ImageIO.read( imagem );
ImageIO.write(imagem_buffered, “jpg”, new File(”novaimagem.jpg”));

Usando uma imagem dentro do seu projeto:

//Origem
BufferedImage imgb;
imgb=ImageIO.read(getClass().getResource(”/path/img.jpg”).openStream());
//Destino
ImageIO.write(imgb, “jpg”, new File(”novaimagem.jpg”));

Enviado em 2/08/2007 na categoria Java 5 Comentários »


Adicionando “Copiar para” e “Mover para” no menu do botão direito no Windows Explorer

Quem trabalha muito com arquivos pode ter notado a falta de um atalho para operações de copia e trasferência entre pastas no Windows Explorer. Você pode adicionar ao menu do botão direito (veja clicando com o botão direito em cima de qualquer pasta ou arquivo) as funções de “Copiar para pasta” e “Mover para pasta”. Para isto abra o registro do Windows (Iniciar -> Executar -> regedit.exe). Se nunca abriu o editor de registro lembre-se de ter cuidado para não modificar nenhum outro valor que não esteja descrito neste artigo.

Abra a chave abaixo:

HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers

e clique com o botão direito e vá em Novo -> Chave

Renomeie a nova chave para “Copiar Para”.

Clique duas vezes em (Padrão), no campo “Dados do Valor” coloque:

{C2FBB630-2971-11D1-A18C-00C04FD75D13}

Clique em OK, feche o registro e verifique a nova opção no menu.

Para mover arquivos crie uma nova chave com o nome “Mover Para” e refaça todo o procedimento mudando apenas o valor para:

{C2FBB631-2971-11D1-A18C-00C04FD75D13}

Enviado em 23/07/2007 na categoria Windows, Dicas 6 Comentários »


Os 45 melhores programas gratuitos de design

O Blog snap2objects fez uma grande lista dos melhores programas gratuitos para edição e criação de imagens, modelagem 3d, criação de fontes e animações. A lista é grande e vale a pena conferir, a lista traz alguns programas desconhecidos mas aparentemente bastante úteis.

[Veja Aqui a Lista]

Enviado em 22/07/2007 na categoria Web, Dicas 8 Comentários »


Barra de tarefas flexível no Windows

O programa utilitário TaskBar Shuffle deixa a barra de tarefas do Windows mais flexível, você poderá mudar a ordem das suas atividades arrastando as abas dos programas facilmente. Tem 636kb, é grátis e roda no Windows XP/Vista/2000/NT/95/98.

Link para Download

Enviado em 17/07/2007 na categoria Windows


Timer Applet ajuda você a não perder tempo pensando no tempo

A ferramenta Time Applet funciona como um auxiliar GTD (Getting Things Done), que é um método de gerenciar tarefas. Informe ao programa quanto tempo será necessário para cada atividade e não fique preocupado com o tempo de conclusão das mesmas e sim em melhor desempenhá-las. O programa está disponível na maioria dos repositórios Linux e pode ser instalado no Ubunto assim:

sudo apt-get install timer-applet

Enviado em 17/07/2007 na categoria Linux