Wordpress atualizado
Rapidinha, Wordpress atualizado para última versão sem perder o gerenciador em português, viva Instant Upgrade!
Postado via Windows Live Writer
Rapidinha, Wordpress atualizado para última versão sem perder o gerenciador em português, viva Instant Upgrade!
Postado via Windows Live Writer
Você é programador PHP e .Net?, então aqui é o seu lugar, a Microsoft esta lançando o concurso Missão Geminis 48 hs, ele consiste em 2 etapas, a primeira é responder um questionário de 17 perguntas sobre PHP e .Net e a segunda é desenvolver uma aplicação em PHP e migrar para .Net de acordo com uma especificação enviada pela Microsoft (é um sistema de controle epidemiológico).
O intuito desse concurso com certeza é mostrar ao mundo como .Net é mais poderosa e produtiva que PHP e como é fácil a migração (isso eles não disseram), e além de tudo você continua usando tecnologia gratuíta, pois o Visual Studio 2008 Express e Sql Server Express continuam sendo gratuitos e de livre distribuição.
A premiação incluida para os 3 primeiros colocados fica em U$1000 para o primeiro lugar, U$800 para o segundo e U$400 para o terceiro sem contar a moral que se ganha vencendo um concurso desse que envolve 2 tecnologias bastante diferentes. Além disso o site do concurso oferece bastante recursos que servem de subsídio tecnológico para o desenvolvimento do projeto que deve ser executado em 48 Horas.
Essa é mais uma investida do Cento de Migração de Tecnologia da Microsoft para alavancar o mercado dos produtos da empresa que sobem deixando o Java para traz, em breve .Net e Microsoft estaram com uma bela fatia do mercado de desenvolvimento corporativo.
Eu já me inscrevi, boa sorte aos corajosos, alguém se habilita?.
Postado via Windows Live Writer
Agenda cheia em 2008, vai rolar quinta-feira 24/01 em Curitiba no Fran’s Café um encontro da comunidade PHP-Curitiba, um BarCamp informal e desconferido(!?), eu, Canha, Daniel e Cristian estamos confirmados.
Ainda tem dia 29/01 um evento organizado pelo Ney da Agencia WX e Nando do UnderGoogle, Nagueva e uma pequena participação minha, vai ser no bar “Era só o que faltava“, vai rolar o show de Diogo Portugal, segue o convite:

Sem esquecer que em fevereiro tem o tão esperado Blog Beach dias 23 e 24 em Bombinhas organizado pela Dani e Macari, esse promete ser o evento mais badalado do primeiro semestre….
Quem quiser comparecer nos eventos fique a vontade… vai ser um prazer encontrá-los.
Conforme prometi ai vai a primeira dica, como trabalho com PHP e MySQL o que não pode faltar na minha máquina é um servidor local configurado então com o Ubuntu (e provavelmente várias outras distribuições) podemos instalar tudo rapidamente assim:
No prompt:
sudo apt-get install apache2 mysql-server-5.0 php5 php5_mysql
Só com isso temos o ambiente já instalado de maneira fácil, para testar e usar segue a dica que o diretório raiz do apache esta em /var/www.
Um outro ponto importante é que o MySQL vem sem senha e podemos setar uma senha com o comando:
mysqladmin -u root sua-senha
Para acessar o MySQL tambem é fácil:
mysql -u usuario -p
E entrar com a senha cadastrada.
Se você gosta do PhpMyAdmin pára administrar suas bases de dados então é só:
sudo apt-get instal phpmyadmin
E pronto só acessar http://localhost/phpmyadmin.
Difícil?
Hoje pela manhã recebi em um dos grupos que participo (iniciado pelo Canha) um link que me deixou contente. era o link de um post falando sobre um livro sobre PHP que está sendo desenvolvido pela comunidade.
São iniciativas como essa que fortalecem a comunidade e mostram as grandes corporações que nem tudo que é bem feito envolve dinheiro.
Quem se interessar pelo livro ou em ajudar a desenvolver pode encontra-lo aqui.
Espero poder reservar um tempo para ajudar, um das coisas que pretendo fazer um dia é escrever no minimo um livro, já seria um bom começo participar de um livro coletivo.
Vale a pena conferir.
O PHP5 implementa um aspecto importante da OOP, a acessibilidade, nesta versão possuímos 3 níveis de acess, sendo: public, protected e private.
Public: Todo atributo, propriedade ou método definido como public pode ser acessado de qualquer lugar da aplicação, é considerado global.
Protected: Todo atributo, propriedade ou método definido como protected só pode ser acessado dentro da classe que o implementa e dentro das classes herdadas da classe que contem o membro.
Private: Todo atributo, propriedade ou método definido como private só pode ser acessado dentro da classe que o definil gerando um erro de acesso a classes externas mesmo que herdem da classe que contém o membro.
Segue abaixo a implementação com atributos:
Esta implementação gera o seguinte retorno:
Acesso publico !
Acesso protegido !
Acesso privado !
Conseguimos acessar todos osatributos, pois estmos utilizando-os dentro da classe que os define, agora vamos herdar a classe:
Teremos o seguinte retorno:
Acesso publico !
Acesso protegido !
Pois como estamos herdando a classe os membros (nesse caso o atributo) privado não está acessível.
Caso seja necessário acessar os atributos através da instância da classe, somente o atributo publicpo estará disponível:
Nesta parte da nossa jornada falamos sobre acessibilidade a membros exemplificanco com atributos, mas estas definições se aplicam de maneira idêntica a propriedades e métodos também.
Nota: Vale lembrar que se um nível de acesso não for definido explicitamente o PHP define como public por padrão.
Até a próxima !
Hoje estava dando(calma !) uma navegada resolvi fazer umas pesquisas no google com meu nome e vi que retornou uma matéria que escrevi a um tempo atrás para o www.revistaphp.com.br, resolvi averiguar e para minha surpresa descobri que o portal foi revitalizado, preferia o layout antigo, mas este está muito bom também.
Este portal além de PHP também traz material sobre documentação de sistemas, JavaScript, AJAX e WEB em geral, quem ainda não conhece vale a pena conferir.
Dando continuidade a nossa jornada estudaremos o conceito e logo após a implementação de construtores e destrutores.
Construtores
São métodos executados no momento em que se instancia uma classe, ou seja, ao criar um objeto de uma classe o construtor é automaticamente executado caso esteja definido, no PHP5 temos a nomenclatura padrão __construct(), porém o modelo antigo com o mesmo nome da classe também é válido para manter compatibilidade com PHP4. Caso um construtor não seja definido explicitamente o PHP implementa implicitamente um construtor vazio.
Implementação de construtores:
Quando instanciarmos o objeto conforme a última linha do código teremos:
Primeira classe construída
Logo o método foi executado na instanciação da classe.
Destrutores
Se construtor constrói, logo destrutores fazer o inverso (óbvio), quando todas as operações com a instância da classe são finalizadas então o destrutor é executado, isso se torna útil por exemplo quando trabalhamos com uma classe de acesso a dados, o construtor inicializa a conexão com o banco e o destrutor pode cuidar de fecha-la. No PHP5 usamos a nomenclatura padrão __destruct() para implementarmos destrutores.
Implementação de destrutores:
De acordo com a implementação teremos o retorno:
Primeira classe construída
Realizando Operações
Primeira classe destruída
Após todas as operações solicitadas a classe serem executadas o destrutor é executado.
Construtores, destrutores e herança
Construtores e destrutores podem ser herdados, porém precisam ser chamados dentro da classe filha com a diretiva parent::__construct() e parent::__destruct() .
Implementação com herança:
Teremos o seguinte retorno:
Primeira classe construída
Segunda classe construída
Realizando Operações
Primeira classe destruída
Segunda classe destruída
A implementação destes recursos podem agilizar o processo de desenvolvimento além de serem semanticamente corretas, no próximo post estudaremos acessibilidade.
Até a próxima .
Quem nunca sofreu com aquele monte de includes no começo de um script PHP?
Para aqueles desenvolvedores (maioria, inclusive eu) que implementam uma classe por arquivo e no fim das contas acabam com vários includes por script existe agora um recurso chamado Autoload, este recurso permite que o próprio PHP inclua dinamicamente as classes de acordo com a necessidade durante o uso.
Para tanto basta criar a seguinte função no início de cada arquivo.
function __autoload($class)
{require_once($class.".php");
}
A utilização da função é simples, mas cuidado, existem alguns poréns.
Citando meu exemplo que uso o seguinte padrão NomeDaClasse.class.php, ou seja, nome da classe com letra maiuscula seguido de .class e a extensão .php a função ficaria assim:
function __autoload($class)
{require_once($class.".class.php");
}
Lembrando que o nome da classe e o primeiro nome do arquivo são idênticos (igual ao Java).
Como eu costumo criar todas as classes dentro de um diretório class alocado dentro do diretório includes é necessário passar o caminho completo de onde a função __autoload deve buscar as classes, ficando assim:
function __autoload($class)
{require_once("includes/class/".$class.".class.php");
}
Mesmo com estes poréns é muito mais fácil e produtivo o uso desta função, pois deixamos de nos preocupar com vários includes, passando este trabalho para o Interpreter do PHP.
A unica exigência é que o arquivo que contém a classe deve estar igual ao nome da classe.
No próximo post da série estudaremos Contrutores e Destrutores.
Como prometido começamos hoje analisar os novos recursos do PHP5 e Orientação a Objetos, esta nova versão com certeza muito melhorada no quesito OOP, neste primeiro momento vamos dar uma idéia macro dos tópicos que vamos seguir nesta série, em posts posteriores analisaremos demais recursos melhorados e introduzidos como XML, JSON e demais. Pretendo nessa série explanar de maneira detalhada os seguintes tópicos:
Todos estes tópicos abrangem melhorias e inclusões de novos recursos, o que proporcionou ao PHP utilizar quase todos os recursos de OOP, digo quase por que a uníca coisa que senti falta foi sobreposição de métodos, mas isto pode ser simulado como veremos a diante.
No próximos post já daremos sequência a nossa jornada.