Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Erro implements Countable Bom dia! Estou iniciando no Framework, e tambem em PHP. Comprei o Livro, estou aguardando chegar. Iniciando os estudos, ao implementar qualquer classe (mesmo dos exemplos), recebo o erro: Warning: count(): Parameter must be an array or an object that implements Countable in Pesquisei que é algo sobre o PHP 7. Existe ja alguma solução? Obrigado...
FM
Erro implements Countable  
Bom dia!
Estou iniciando no Framework, e tambem em PHP.
Comprei o Livro, estou aguardando chegar.
Iniciando os estudos, ao implementar qualquer classe (mesmo dos exemplos), recebo o erro:
Warning: count(): Parameter must be an array or an object that implements Countable in
Pesquisei que é algo sobre o PHP 7. Existe ja alguma solução?
Obrigado

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (9)


NR

O php ficou mais criterioso na versão 7.2. Troque para uma versão anterior ou inicialize a variável $properties como array no construtor da classe TStyle.
FM

Obrigado Nataniel!
Deu certo com a inicalização da $properties.
LJ

Estou usando a versao php 7.2
  1. <?php
  2. class TStyle
  3. {
  4.     private $name;           // stylesheet name
  5.     private $properties;     // properties
  6.     static  private $loaded// array of loaded styles
  7.     static  private $styles;
  8.     
  9.     /**
  10.      * Class Constructor
  11.      * @param $mame Name of the style
  12.      */
  13.     public function __construct($name)
  14.     {
  15.         $this->name $name;
  16.         // para compatibilidade com php7.2
  17.         $properties = array();
  18.     }
  19. // outros metodos...
  20.     /**
  21.      * Return if the style has any content
  22.      */
  23.     public function hasContent()
  24.     {
  25.         return count($this->properties) > 0;       // Nesta linha esta dando erro
  26.     }
  27. ?>


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/epcp/lib/adianti/widget/base/TStyle.php on line 91
LJ

Pessoal , alterei a linha

$properties = array();

para $this->properties = array();

e ai funcionou sem erro.
LJ

Agora o erro esta
count(): Parameter must be an array or an object that implements Countable in /var/www/html/epcp/lib/adianti/core/AdiantiCoreApplication.php on line 205

o mesmo erro que https://www.adianti.com.br/forum/pt/view_4165?versao-do-php-recomendada

  1. <?php
  2.     /**
  3.      * Build HTTP Query
  4.      *
  5.      * @param $class class name
  6.      * @param $method method name
  7.      * @param $parameters array of parameters
  8.      */
  9.     public static function buildHttpQuery($class$method NULL$parameters NULL)
  10.     {
  11.         $url = array();
  12.         $url['class']  = $class;
  13.         $url['method'] = $method;
  14.         unset($parameters['class']);
  15.         unset($parameters['method']);
  16.         $query http_build_query($url);
  17.         $callback self::$router;
  18.         $short_url null;
  19.         
  20.         if ($callback)
  21.         {
  22.             $query  $callback($queryTRUE);
  23.         }
  24.         else
  25.         {
  26.             $query 'index.php?'.$query;
  27.         }
  28.         
  29.         if (strpos($query'?') !== FALSE)
  30.         {
  31.             return $query . ( count($parameters)>'&'.http_build_query($parameters) : '' );     //linha 205 - com erro para php7.2
  32.         }
  33.         else
  34.         {
  35.             return $query . ( count($parameters)>'?'.http_build_query($parameters) : '' );
  36.         }
  37.     }
  38. ?>

ML

Boa noite Luiz, tudo bem ?

Você conseguiu resolver o problema ?

Eu também instalei php 7.2
AS

Boa noite,
eu consegui tirar o erro da linha 205 tirando a função count , e o erro desapareceu.
AP

Basta colocar o @ antes do Count
NJ

Olá a todos!

Iniciei a utilização do microERP e também tive estes erros, fiz alteração no fonte incluindo @ arroba antes do count e tudo funcionou.

PORÉM, não sei se é uma boa prática ficar alterando o fonte do framework, pois nas próximas atualizações estas alterações feitas individualmente serão perdidas.

Seria um feedback dos mentores do projeto.

Um abraço a todos.