رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارروری که بعد از ارتقاء پی اچ پی به 5.4 با آن روبرو خواهید شد :)
#1
Lightbulb 
سلام
اول از همه که خوشحالم که بعد از یک دوره 18 ماهه برگشتم به جمع دوست داشتنی این انجمن ، یک مطلب رو می خواستم آموزش بدم و از اونجا که وبلاگم به لطف نبودن در مدت خدمت سربازی از دست رفت آموزش رو اینجا می ذارم Smile

صورت مسئله :
همه چی خوب و خوش هست تا وقتی که ورژن پی اچ پی تون رو به 5.4 ارتقاء می دید و این در حالیه که از کیک پی اچ پی 2 استفاده می کنید !
در این حالت این اررور رو توی صفحات پروژه تون دریافت خواهید کرد :
کد:
Declaration of beforeSave() should be compatible with Model::beforeSave( $options = array() )
مشکل :
مشکل اینه که توی پی اچ پی 5.4 E_ALL و E_STRICT با هم ادغام شدن و این توی Error Handler کیک پی اچ پی مشکل ایجاد می کنه !

راه حل :
راه حل موردی و بدوی اینه که توی متد هایی که بهشون گیر می ده یه آرگومان به شکل زیر ایجاد کنید :
کد پی‌اچ‌پی:
function beforeSave(){
        
// Your codes ... .
    

تبدیل بشه به این :

کد پی‌اچ‌پی:
function beforeSave($options = array()){
        
// Your codes ... .
    


اما راه حل درست و اصولی ( به نظر من ) اینه که از داخل پویشه Config کیک پی اچ پی فایل core.php رو باز کنید و قسمت مربوط به تنظیمات ErrorHandler تنظیمات رو طبق توضیح زیر تغییر بدید :
به آیتم level حالت E_ESTRICT رو هم اضافه کنید تا کد از این حالت :
کد پی‌اچ‌پی:
    Configure::write('Error', array(
        
'handler' => 'ErrorHandler::handleError',
        
'level' => E_ALL & ~E_DEPRECATED ,
        
'trace' => true
    
)); 
به این حالت :
کد پی‌اچ‌پی:
    Configure::write('Error', array(
        
'handler' => 'ErrorHandler::handleError',
        
'level' => E_ALL & ~E_DEPRECATED & ~E_STRICT,
        
'trace' => true
    
)); 
تغییر کنه !
از کیک پی اچ پی در کنار پی اچ پی 5.4 لذت ببرید Smile
[عکس: logo-small.jpg]
[عکس: 468x60.jpg]
پاسخ
سپاس شده توسط payamsp ، farmad ، meysam1366 ، vahidqara


پیام‌های این موضوع
ارروری که بعد از ارتقاء پی اچ پی به 5.4 با آن روبرو خواهید شد :) - parsig - 2014/01/16, 05:49 PM

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان