index uses the super-global variable $_SERVER which is generally not recommended.
Instead of super-globals, we recommend to explicitly inject the dependencies
of your class. This makes your code less dependent on global state and it
becomes generally more testable:
// BadclassRouter{publicfunctiongenerate($path){return$_SERVER['HOST'].$path;}}// BetterclassRouter{private$host;publicfunction__construct($host){$this->host=$host;}publicfunctiongenerate($path){return$this->host.$path;}}classController{publicfunctionmyAction(Request$request){// Instead of$page=isset($_GET['page'])?intval($_GET['page']):1;// Better (assuming you use the Symfony2 request)$page=$request->query->get('page',1);}}
It seems like you call parent on a different method (init() instead of index()). Are you sure this is correct? If so, you might want to change this to $this->init().
This check looks for a call to a parent method whose name is different than
the method from which it is called.
The call to the method ConsoleController::writehtaccess() seems un-needed as the method has no side-effects.
PHP Analyzer performs a side-effects analysis of your code. A side-effect is
basically anything that might be visible after the scope of the method is left.
If we look at the getEmail() method, we can see that it has no side-effect.
Whether you call this method or not, no future calls to other methods are affected
by this. As such code as the following is useless:
$user=newUser();$user->getEmail();// This line could safely be removed as it has no effect.
On the hand, if we look at the setEmail(), this method _has_ side-effects.
In the following case, we could not remove the method call:
$user=newUser();$user->setEmail('email@domain');// This line has a side-effect (it changes an// instance variable).
Both the $myVar assignment in line 1 and the $higher assignment in line 2
are dead. The first because $myVar is never used and the second because
$higher is always overwritten for every possible time line.
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.