Reputation: 1129
My team members wrote the model function calls in the controller statically such as:
$data = ModelName::functionName($param);
while it should be called dynamically such as:
$model = new Model();
$data = $model->functionName($param);
mostly all the calls are made statically. the code is working on the server and on their local machines except for mine. And the static calls are too many to fix without rewriting huge code base.
I always update my project via composer. My php version is 5.4.
anyone might know what this is about?
Upvotes: 4
Views: 20156
Reputation: 1
Sorry but I do not write English very well, but what I understand your question is that:
you need to put your static function:
static public function functionName () {
$data = ModelName :: functionName ($ param);
}
That happens through the different versions of PHP
that the servers handle.
I hope that I have understood your question and translate it well, because a similar error appeared to me and I solved it that way.
Upvotes: 0
Reputation: 2668
You probably have PHP running with E_STRICT
error reporting. Try turning it off and see if that fixed the problem - like turn of error reporting for E_STRICT
errors. See this post on SO :
<?php
error_reporting(E_ALL ^ E_STRICT);
But I have to say, it's a bad idea to mix object-style and static-style calls. Function calls should explicitly show that a function is called in a static or object context, and act accordingly. Even if it's a little hard (how hard is making a grep on all the files and change wrong calls?), i'd recommend fixing your code first.
And also I recommend reading about static keyword in Object Oriented Programming - there's a reason to distinguish static and object method calls, and it's not a reason of "to make things easier", but more of a "to make things clearer", I'd say.
Upvotes: 8