web-dev-qa-db-fra.com

PHP Espace de noms de la classe DateTime

J'utilise le framework symfony2 et je veux utiliser la classe DateTime de PHP (la version PHP est 5.3).

Voici la déclaration:

namespace SDCU\GeneralBundle\Entity;

class Country
{
   public function __construct(){
       $this->insertedAt = new DateTime();
   }
}

Mais, lors de l'exécution de ce constructeur, j'obtiens une erreur indiquant qu'il n'y a pas de classe "SDCU\GeneralBundle\Entity\DateTime". J'ai cherché l'espace de noms de DateTime mais sans succès ... une idée?

45
Miguel Ribeiro

DateTime est dans l'espace de noms global, et comme " les noms de classe se résolvent toujours en nom d'espace de noms actuel " vous devez utiliser \DateTime.

Ou importez le package en utilisant:

use \Datetime;
80
str

La meilleure solution pour utiliser des classes dans des espaces de noms globaux est le mot-clé "use" au lieu de "\" avant la classe.

namespace SDCU\GeneralBundle\Entity;
use \DateTime;

class Country
{
   public function __construct(){
       $this->insertedAt = new DateTime();
   }
}
22
Glavić