Category Archives: programação

Multitenancy

Multitenancy refere-se a um princípio de arquitetura de software onde uma única instância do software executado em um servidor, servindo múltiplas organizações de clientes (lojistas). Multitenancy é contrastado com uma arquitetura multi-instância onde instâncias de software independentes (ou sistemas de hardware) são criados para organizações clientes diferentes. Com uma arquitetura multitenant, um aplicativo de software é projetado para praticamente partição seus dados e configurações, e cada organização cliente trabalha com uma instância de aplicativo virtual personalizado.

Multitenancy também é considerado como um dos atributos essenciais de computação em nuvem .

O princípio da multitenancy não é universalmente aceito e apoiado dentro da indústria de software, e isso pode ser uma fonte de diferenciação competitiva.

Fonte: http://en.wikipedia.org/wiki/Multitenancy

 

Top Frameworks PHP

Qual usar? O mais seguro, o mais leve, o mais fácil, o mais completo, etc. São essas as dúvidas que podem surgir na hora de escolher entre qual framework adotar para sua empresa ou projeto pessoal. As opções hoje são muitas, e escolher um bom framework PHP pode ajudá-lo a desenvolver aplicativos complexos em RIA, com uma abordagem orientada para as melhores práticas e poupar muito tempo reutilizando trechos de código que estão lá prontinhos e disponíveis para você. Há uma série de frameworks PHP bem interessantes, e qual escolher é realmente uma decisão pessoal. Atualmente existem diversos frameworks com diferentes abordagens e cada um deles podendo se enquadrar melhor em um contexto especifico. Abaixo descrevo alguns dos “melhores” frameworks disponíveis hoje. É quase uma certeza que na lista abaixo um ou mais deles vão atender às suas necessidades. Experimente diferentes deles até encontrar aquele que você sente mais confortável e que possa atender às suas necessidades de forma eficiente.
Continue reading Top Frameworks PHP

Programação OO, Estruturada ou Procedural?

Olá,

me perguntaram sobre os paradigmas de programação, com o intuito que eu falasse em qual deveriam focar, mas muito se fala sobre a programação orientada a objetos, estruturada e a procedural nos dias de hoje, mas o que vemos é que muitos se preocupam apenas com uma das três! Isso é o correto? NÃO!

Um bom desenvolvedor nunca vai ser bom em Orientação a Objetos se ele não dominar também os conceitos e melhores praticas dos paradigmas estruturados e procedural… concordam?

por exemplo: em uma classe, se olharmos para um método de forma individual onde os comandos são executados sequêncialmente veremos que se trata de um paradigma “procedural”, portanto podemos dizer que a orientação a Objetos inclui a programação “estruturada” certo? SIM.

Continue reading Programação OO, Estruturada ou Procedural?

Funções de manipulação de strings no PHP

Nesse artigo sobre PHP, irei apresentar e explicar como e quando utilizar as principais funções de manipulação de strings da linguagem. Ao final da leitura deste material, você deverá estar apto a realizar as principais operações com esse tipo de dado, como converter uma expressão para maiúsculo ou minúsculo, obter partes de um string, identificar se um string está contido em outro, substituir parte de uma expressão, entre outra.

Continue reading Funções de manipulação de strings no PHP

PHP 5.4.5 e PHP 5.3.15 lançado!

A equipe de desenvolvimento PHP gostaria de anunciar a disponibilidade imediata do PHP 5.4.5 e PHP 5.3.15. Esta versão corrige mais de 30 bugs e inclui uma correção para um problema de estouro de segurança relacionado com a implementação de fluxo. Todos os usuários do PHP são encorajados a atualizar para PHP 5.4.5 ou PHP 5.3.15.

http://translate.google.com/translate?sl=auto&tl=pt&u=http://www.php.net/index.php%23id2012-07-19-1

PHP: Hypertext Preprocessor

via PHP 5.4.5 e PHP 5.3.15 lançado!.

Redirect index.php to root

Olá, dica pra quem quiser reconfigurar o index da pagina no .htacess, para configurar o padrão para o “index.php” basta usar o codigo abaixo:

 

RewriteEngine on
RewriteRule ^index.php$ – [L]
RewriteCond %{HTTP_HOST} ^nomedominio.com.br$ [OR]
RewriteCond %{HTTP_HOST} ^www.nomedocminio.com.br$
RewriteRule ^/?$ “http://nomedominio.com.br” [R=301,L]

Options +Indexes
IndexOptions +FancyIndexing

 

isso se faz necessário as vezes quando se registra mais de um domínio quando ao acessar nao abre na pagina index que em questão é a padrao, mas se quiser colocar com outro nome também pode..

 

segue um link para aprofundar mais.. abs..

http://www.askapache.com/htaccess/redirect-index-blog-root.html

Convertendo ISO-8859-1 para UTF-8 de forma segura

Introdução

Já falamos várias vezes sobre Unicode, desde a definição de unicodefunções para manupular unicodecomo utilizar unicode em todas camadas do sistema e como representar os símbolos na forma de html entities.

Sabemos que ISO-8859-1 foi uma codificação muito utilizada antes do surgimento do Unicode, mas que a tendência é que tudo seja migrado para Unicode e, no caso do ISO-8859-1, preferencialmente migrado para UTF-8. Porém, aplicações web estão sujeitas a situações das mais adversas, quando se trata de dados enviados pelo usuário. Existem casos em que um usuário consegue colar um texto em que parte dele deveria ser ISO-8859-1 e parte dele deveria ser UTF-8. Isso pode ocorrer ao copiar e colar trechos de aplicações para aplicações em sistemas de “origem duvidosa”, que acabam gerando uma bagunça de bytes que, por acaso, acabam sendo enviadas para nossa aplicação.

Para resolver este problema, elaborei uma função parecida com utf8_encode, ou seja, converte os caracteres de ISO-8859-1 para UTF-8, porém, caso a função identifique um caractere UTF-8 no texto, ela o mantem intacto. Portanto, ela é útil para garantir que o texto final seja 100% UTF-8 válido.

Copyright 2012 Rubens Takiguti Ribeiro

Licença: LGPL 3 ou superior

/**
 * Função que converte caracteres ISO-8859-1 para UTF-8, mantendo os caracteres UTF-8 intactos.
 * @param string $texto
 * @return string
 */
function sanitizar_utf8($texto) {
    $saida = '';

    $i = 0;
    $len = strlen($texto);
    while ($i < $len) {
        $char = $texto[$i++];
        $ord  = ord($char);

        // Primeiro byte 0xxxxxxx: simbolo ascii possui 1 byte
        if (($ord & 0x80) == 0x00) {

            // Se e' um caractere de controle
            if (($ord >= 0 && $ord <= 31) || $ord == 127) {

                // Incluir se for: tab, retorno de carro ou quebra de linha
                if ($ord == 9 || $ord == 10 || $ord == 13) {
                    $saida .= $char;
                }

            // Simbolo ASCII
            } else {
                $saida .= $char;
            }

        // Primeiro byte 110xxxxx ou 1110xxxx ou 11110xxx: simbolo possui 2, 3 ou 4 bytes
        } else {

            // Determinar quantidade de bytes analisando os bits da esquerda para direita
            $bytes = 0;
            for ($b = 7; $b >= 0; $b--) {
                $bit = $ord & (1 << $b);
                if ($bit) {
                    $bytes += 1;
                } else {
                    break;
                }
            }

            switch ($bytes) {
            case 2: // 110xxxxx 10xxxxxx
            case 3: // 1110xxxx 10xxxxxx 10xxxxxx
            case 4: // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
                $valido = true;
                $saida_padrao = $char;
                $i_inicial = $i;
                for ($b = 1; $b < $bytes; $b++) {
                    if (!isset($texto[$i])) {
                        $valido = false;
                        break;
                    }
                    $char_extra = $texto[$i++];
                    $ord_extra  = ord($char_extra);

                    if (($ord_extra & 0xC0) == 0x80) {
                        $saida_padrao .= $char_extra;
                    } else {
                        $valido = false;
                        break;
                    }
                }
                if ($valido) {
                    $saida .= $saida_padrao;
                } else {
                    $saida .= ($ord < 0x7F || $ord > 0x9F) ? utf8_encode($char) : '';
                    $i = $i_inicial;
                }
                break;
            case 1:  // 10xxxxxx: ISO-8859-1
            default: // 11111xxx: ISO-8859-1
                $saida .= ($ord < 0x7F || $ord > 0x9F) ? utf8_encode($char) : '';
                break;
            }
        }
    }
    return $saida;
}

Fonte, Convertendo ISO-8859-1 para UTF-8 de forma segura.