Question

I use CodeIgniter 2.1 and my production server was updated to PHP 5.4.3-1, and the pages that uses phpactiverecord don´t show nothing and don't show any error.

In my test servers with 5.3.6 works fine.

I use the nightly build version of May 2012. I try with the older versions and stable version.

Php-activerecord don´t work fine with php 5.4.3?


EDIT: I found that my new server doesn´t have displays_errors = ON. After activate it, I see the error:

Fatal error: Class 'Category' not found in /srv/www/framework/application/controllers/categories.php on line 26

at line 26:

$data["categories"] = Category::findby($parent_id);

categories.php exists in /srv/www/framework/application/controllers/ and this works fine on PHP 5.3.6.

I need to call something more or call at a different way?

Était-ce utile?

La solution

I found the solution.

This solution is for php-activerecord through the latest SPARKS version.

Debugging the autoload_function, I´ve seen that the model file was loaded with the first letter capitalized, only in PHP 5.4.3, not in 5.3.x, and the file wash´t loaded.

Find the ActiveRecord.php at

yourfolder/sparks/php-activerecord/0.0.0.2/vendor/php-activerecord

Search the function:

activerecord_autoload($class_name)

Line 49 change:

    $file = $root.DS.$file_name;

for

    $file = $root.DS.strtolower($file_name);

And now it works!

p.d. I have found another strange case with PHP 5.4.3 before solve this. The function parse_url() returns false if your database password has a '/' on the string. Because of this, php-activerecord could not connect to the database in the file yourfolder/sparks/php-activerecord/0.0.0.2/vendor/php-activerecord/lib/connection.php at function: file parse_connection_url().

On PHP 5.3 returns the correct array.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top