You cannot use $this when in a static method. Static methods do not know about the state of an object. You can only refer to static properties and objects using self:: . If you want to use the object itself, you need to feel that you are outside the class, so you need to make an instance of one, but this will not be able to understand what happened before in the object. That is, if some method changed the $_x property to some value, when you restore the object, you will lose this value.
However, in your case you can do
$_this = new self; $_this->event->create($info);
You can also call non-static methods like static self::method() , but in newer versions of PHP you will get errors for this, so it's best not to do this.
You can find information about this in the official php documentation: http://www.php.net/manual/en/language.oop5.static.php
Since static methods can be called without instantiating the object created, the pseudo-variable $ this is not available inside the method declared as static
Calling non-static methods statically generates an E_STRICT warning level.
source share