mehar444 mehar444 - 18 days ago 4x
PHP Question

How to use 'use' in php , Getting fatal error

I have learned that I need to use name space in php like I have used in my following code but I'm getting

Fatal error: Trait 'SuperClosure\Serializer' not found

I have used it like this:

use SuperClosure\Serializer;
public function set( $key, $value )
$key = strtolower( $key );
$serializer = new Serializer();
$serialized = $serializer->serialize($value);

$_SESSION["HA::STORE"][$key] = $serialized;

where I am wrong ? please tell me the correct way to use it?


You need to use namespaces before declaring class because word use point to Trait mechanism (PHP: Traits). Example of namespaces and traits in class:

<?php namespace Foo\Bar;

/* I am telling to PHP compiler that class
 * Serializer has different path than class Baz.
use SuperClosure\Serializer;
use SuperClosure\Shortcuts;

class Baz {
    /* Now I used Trait. That should include
     * methods defined in trait Shortcuts
    use Shortcuts;

Also I recommend read more about namespaces and importing them.