hqdefault DOMINANDO O WP-CONFIG.PHP – PARTE 2

este é o segundo artigo da serie Dominando o wp-config.php, acesse este link para ver mais artigos relacionados. Este artigo é destinado tanto para desenvolvedores do CMS – Content Management System – ou em uma tradução livre: Sistema de Gerenciamento de Conteúdo, quanto para pessoas que apenas utilizam ele mas não tem conhecimento em programação, caso no final desse artigo vocês tenham alguma dúvida não deixe de comentar 😉

 

Como aumentar a memoria do PHP

Como aumentar o limite da memória do php no wp-config.php

Se seu wordpress começou a apresentar a mensagem “Fatal Error: Allowed memory size 335544 bytes exhausted (tried to allocate 2975669 bytes) in…” quando estava tentando logar no administrativo ou fazendo alguma tarefa administrativa (ativar tema, instalar plug-in…) é porque você estourou o Memory Limit do PHP, existe varias formas de aumentar esse limite, entre elas pelo php.ini, .htaccess e até mesmo conversando com sua empresa de hospedagem, mas como nosso foco é wordpress, vamos ensinar fazer a mudança pelo wp-config.php.

Tal arquivo fica na raiz da instalação do wordpress (padrão) ao editar ele basta adicionar as seguintes linhas logo após a abertura do arquivo – depois do “<?php”

define(‘WP_MEMOMY_LIMIT’,’96M’);

OBS: Onde ’96M’ é uma variável de quantos megas você quer liberar, normalmente o limite comum do php é de 32M ou 64MB inicialmente, logo 96m é o suficiente para a maioria dos casos.

 

Tela branca da morte

Esse erro é menos comum mas pode acontecer, normalmente acontece quando você tenta acessar seu site ou administrado e simplesmente vê uma tela branca, conforme a imagem abaixo:

white-screen-of-death

Se sua tela está assim, fique calmo e vamos a solução, segundo o codex (bíblia do wordpress) existe varias formas para verificar a origem do erro, entre as mais comuns estão, renomear a pasta de plug-ins que fica em raiz/wp-content/plugins ou na pasta theme que fica em /wp-content/themes, entre outras dicas (link) , uma sacada que eu dou e que pode te poupar muito tempo é ativando o modo deBUG do WordPress (link do codex) para ativar o modo debug é simples, basta procurar no seu wp-config.php a seguinte linha:

define(‘WP_DEBUG’, false);

e mudar o valor do arquivo para true, caso não ache a linha, fique a vontade para adicionar:

debug_wordpress

com isso você poderá ver em que linha está o erro, e já ter uma noção se o erro é por causa de plug-in thema ou se seu core foi corrompido, mais adiante falaremos o que fazer se seu core foi corrompido. entenda por core do wordpress tudo que  é nativo do wordpress , excluindo  plug-ins e temas.

 

Atualizei meu tema ou plug-in e meu wordpress quebrou

Outro erro comum é quando você não ler o aviso do wordpress solicitando um backup antes de qualquer atualização ai você faz a atualização e por algum motivo a atualização da um erro no seu wordpress, com você sem acesso ao painel administrativo uma forma de desativar o elemento causador do erro é renomeando, só por fazer isso você já terá acesso ao administrativo. mas se o Erro não por em um plug-in ou tema mais sim no WordPress, o que fazer? no tópico a seguir vamos abordar isso.

Como reinstalar o WordPress sem perder conteúdo

Se você se deparou com algum erro que não envolve plug-in ou tema a solução mais rápida pode ser instalar o wordpress do zero.  se você tiver tempo você também pode procurar o erro no google. Para fazer isso é simples, precisamos ter em mente que tudo o que você fez em seu blog/site/loja fica em wp-content e no banco de dados (representando pelo arquivo wp-config.php) – digo com as credenciais de acesso salvo.

então você pode deletar o restante dos arquivos e pastas, depois disso basta você baixa a ultima versão do wordpress no site br.wordpress.org no seu pc, remover a pasta wp-content e subir pro servidor – o arquivo wp-config.php não existirá no wordpress antes dele ser instalado.

Em muitos casos isso será a solução dos problemas.

Lembre-se backup é bom quando existe pelo menos backup do backup.

essas foram algumas dicas, em breve colocaremos outras 🙂

gostou? discorda de algo? não deixe de comentar 😉

NOVIDADES DO PHP 7

Olá pessoal, com a versão estável do PHP 7 lançada, muitas pessoas tem se perguntado se vale a pena mudar a versão ou se continuar na versão antiga ainda é a melhor opção. Com esse post irei mostrar algumas novidades que irão fazer você mudar imediatamente para a nova versão da linguagem!!! 😀

Performance

O principal ponto para você correr para a nova versão do PHP é pela sua performance. Quando você mudar a versão, sem alterar nenhuma linha de código, suas aplicações já vão ganhar um UP que vai de 25% à 70% apenas mudando a versão do PHP. Além disso a nova versão consegue responder aproximadamente o dobro de requisições por segundo em comparação à versão anterior.

Remoção de Itens Depreciados

Alguns itens que já estavão nessa condição por algum tempo foram removidos, dessa maneira algumas aplicações podem parar de funcionar corretamente caso ainda utilizem algum desses itens. Os itens removidos foram:

        As tags: <%, <%=, %>, < script language=”php”>;
        A extensão

ereg

        e com isso todas as funções da mesma (devendo utilizar a partir de agora a extensão

PCRE

        );
        A extensão

mysql

        e com isso todas as funções da mesma (devendo utilizar a partir de agora a extensão

mysqli

        ou

PDO

      );

Uniform Variable Syntax

Essa mudança veio para resolver diversas inconsistências ao resolver expressões “variáveis-variáveis”. Vamos entender melhor analisando o código abaixo:

<?php
  class Dog {
    public $name = 'Rex';
    public $age = 1;
  }
  
  $dog = new Dog();
  $property = [
    'first' => 'name',
    'second' => 'age'
  ];
  echo "My dog name is ". $dog->$property['first'];

No PHP 5 a expressão $dog->$property[‘first’] é interpretada de uma forma incoerente com a interpretação padrão (esquerda para direita), pois ela é interpretada da seguinte forma: $dog->{$property[‘first’]}.

No PHP 7 a mesma expressão é interpretada da forma padrão (esquerda para direita) e fica da seguinte maneira: {$dog->$property}[‘first’] fazendo com que essa expressão não funcione no PHP 7, pois $property é um array e não pode ser convertido em uma String.

Mas com essa mudança outras expressões que nas versões anteriores eram inválidas agora passam a ser válidas, vamos ver alguns exemplos:

<?php
  class Dog {
    public static $name = 'Rex';
    public function getRelatives() { 
      return [ 
        'father' => function() {
          return 'Responsible old dog';
        },
        'mother' => function() {
          return 'Kind little dog';
        }
      ];
    }

    public function getWho($relative) {
      return $this->getRelatives()[$relative];
    }

    public function getNewDog() {
      return new Dog();
    }
  }

Com o PHP 7 podemos criar diversas associações aninhadas que não funcionam em versões anteriores como por exemplo:

<?php
  $dog = new Dog();
  echo $dog->getRelatives()['father']();
  echo $dog->getWho('mother')();
  $dog::getNewDog()::$name;

Switch com apenas um default

Nas versões anteriores do PHP podíamos definir diversas cláusulas default em um switch. Lógico que isso não fazia sentido pois apenas a última declarada era utilizada, mas não gerava nenhum erro nem alertas então era um problema difícil de se encontrar, porém agora no PHP 7 quando utilizamos mais de uma cláusula default em um switch o PHP retorna um Fatal Error.

Engine Exceptions

As novas exceptions foram introduzidas para facilitar o tratamento de erros nas aplicações. As Engine Exceptions substituem os Fatal Errors e os Recoverable Fatal Errors, fazendo com que agora possamos capturar essas exceções e tratá-las. As novas exceptions foram introduzidas nessa versão de uma forma para manter a compatibilidade com versões anteriores. Para incorporar as novas exceptions com um impacto mínimo em códigos de versões anteriores, a Hierarquia das Exceptions teve de sofrer algumas mudanças. Veja abaixo:

      Throwable interface

          Exception implements Throwable

              ErrorException extends Exception
              RuntimeException extends Exception
          Error implements Throwable

              TypeError extends Error
              ParseError extends Error
              AssertionError extends Error

Operador de Comparação Combinada (Spacheship Operator)

O operador spacheship( <=> ) foi introduzido para nos ajudar a fazer comparações mais concisas. Veja a expressão abaixo:

<?php
  $a <=> $b

A expressão acima pode nos retornar três resultados diferentes, dependendo do valor das variáveis:

        Retorna

-1

        se

$a

        for menor que

$b

        ;
        Retorna

0

        se

$a

        e

$b

        forem iguais;
        Retorna

1

        se

$a

        for maior que

$b

      ;

Null Coalesce Operator (??)

Esse novo operador veio para diminuir o esforço que gastamos quando nos deparamos com a situação que temos que verificar se determinado valor existe antes de usá-lo. Nas versões anteriores do PHP utilizamos a seguinte maneira:

<?php
  $a = isset($b) ? $b : "default";

No PHP 7 utilizando o novo operador, podemos fazer apenas assim:

<?php
  $a = $b ?? "default";

Scalar Type Hints

Agora podemos finalmente utilizar strings, booleans, integers e floats como Type Hints para nossas funções e métodos. Por padrão os type hints não são restritivos, então se você passar uma string para um parâmetro integer ele vai apenas fazer a conversão sem gerar nenhum erro ou alerta. Porém é possível ativar um Modo Restrito que irá gerar erros quando um tipo diferente do declarado for passado como parâmetro. Vamos entender melhor verificando o código abaixo:

<?php
  function squareNumber(int $number) {
    return $number * $number;
  }

  $a = squareNumber("4");
  var_dump($a);

O código acima não irá gerar nenhum erro ou alerta, pois o Modo Restrito não está ativado, dessa forma quando passamos o valor “4” para nosso método, ele converte o valor para um integer. Caso você queira restringir para que apenas integers possam ser passados para a função squareNumber devemos colocar uma diretiva na primeira linha de nosso script como mostra o exemplo abaixo:

<?php
  declare(strict_types = 1);

  function squareNumber(int $number) {
    return $number * $number;
  }

  $a = squareNumber("4");
  var_dump($a);

Com o Modo Restrito ativado esse código iria gerar um Fatal Error com a seguinte mensagem: Fatal error: Uncaught TypeError: Argument 1 passed to squareNumber() must be of the type integer, string given..

Return Type Hints

Além de podermos declarar os tipos de nossos parâmetros, agora também podemos definir o tipo do retorno de nossos métodos e funções. Igual aos Scalar Type Hints, caso o Modo Restrito não esteja ativado, o valor será convertido automaticamente para o tipo definido no Return Type Hint. Vejamos o exemplo abaixo:

<?php
  function testReturn() : bool {
    return 1;
  }

  var_dump(testReturn());

No código acima o valor do retorno será convertido automaticamente para um boolean. Caso o Modo Restrito esteja ativado o código acima iria produzir um Fatal Error com a seguinte mensagem: Fatal error: Uncaught TypeError: Return value of testReturn() must be of the type boolean, integer returned..

Observações importantes

Lembre-se que os erros descritos em Scalar Type Hints e Return Type Hints podem ser tratados com blocos try/catch e também é muito importante lembrar que você pode utilizar outros tipos em seus métodos e funções, por exemplo objetos, etc.

Conclusão

Espero que esse artigo possa dar uma base nas novidades que o PHP 7 trouxe para nós desenvolvedores e que vocês continuem estudando e aprofundando mais nos estudos da linguagem.

Um grande abraço a todos!!! Espero que o artigo possa ajudar a melhorar seus conhecimentos!!! Até a próxima!!!

phptalk SEGUNDO PHP FC

Segundo meetup PHP CF de Brasília,

Se você gosta de Cerveja, Futebol ou PHP, está convidado a participar do nosso meetup.  Será um evento para interação entre diversas pessoas da área de qualquer nível técnico e o melhor de GRAÇA.

Speaker I: Anísio Pitbull, Graduando em SI, Desenvolvedor PHP ~2 anos, entusiasta do Software Livre e comunidades relacionadas.

Título: Dominando laravel em 30 minutos, “for beginners”.

Speaker II: Walker Alencar, desenvolvedor PHP a 13 anos, Consultor PHP/Zend e pesquisador.

Título: As principais novidades do PHP7.

Segue link

http://www.meetup.com/pt-BR/php-df/events/227677687/

phptalk CADASTRO DE LIGHTNING TALKS PARA PHP FC

Caros amigos de profissão,

Como foi dito no primeiro PHP FC, estamos abrindo inscrições para lightning talks, de qualquer assunto que ligue ao PHP e de qualquer nível de conhecimento.

Serão apresentações de 30 a 40 minutos em um ambiente descontraído e nada formal. Fiquem a vontade para falar submeter, sem medo de julgamentos ou vergonha, estamos todos no mesmo barco para ajudar.

Não necessariamente precisar ser assuntos técnicos, mas tudo que envolva nossa profissão. Lembrando que as lightning talks serão divididas ao longo do ano.

Seu nome (obrigatório)

Seu e-mail (obrigatório)

Telefone

Quem sou

Título da lightning talk

Resumo da lightning talk

logo-composer-transparent 1 PHP FC – PHP, FUTEBOL E CERVEJA

Ae pessoal, fim de ano chegando… e conversando com algumas pessoas e a exemplo dos meetup que acontece todo mês de WordPress, decidimos criar um para o  o PHP-CF, “PHP, Cerveja e Futebol”.

São apresentações pequenas ou uma grande de diversos níveis, em um bar da cidade, algo bem descolado sem pressão com conversas sobre php, tecnologia tomando uma cerveja, pra quem bebe ou suco, aguá para quem não bebe e vendo um futebol, aliás futebol só ano que vem pq Campeonato Brasileiro ta terminando né.

Mas ai, o primeiro meetup vai ser com Rafael Dohms falando um bucado sobre Composer. Direto do PHP Conference para o PHP CF.

Então se cadastrem e compareçam. É de graça.

http://www.meetup.com/pt/php-df/events/227164143/