صفحه 3 از 9 اولاول 12345 ... آخرآخر
نمایش نتایج 81 تا 120 از 341

نام تاپیک: Yii vs Laravel

  1. #81
    کاربر دائمی آواتار metal gear solid 4
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد
    پست
    307

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    با وجود AR در Yii عملاً استفاده از QueryBuilder فقط به تولید Queryهای پیچیده یا موارد خاص مثل ساخت Event و Trigger و... محدود میشه.
    به این نتیجه رسیدید که Query هاتون پیچیده و ناخواناست؟ معادل همین موارد با QueryBuilder لاراول بسیار ساده نوشته شدن. آقای rezakho مثال های خیلی خوبی زدن.

  2. #82
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    خوب chunk اینکارو نمیکنه، بلکه تا انتها 200 تا 200 تا واکشی میکنه که رم رو قبضه نکنه، مثلا اگر نیاز باشه هزاران رکورد رو پیمایش کنید، شما چکار میکنید؟ البته همین الان بگم که راه داره، ولی منظور من راه کوتاه و تمیزیه کد و سینتکس هست ها!

  3. #83

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط metal gear solid 4 مشاهده تاپیک
    به این نتیجه رسیدید که Query هاتون پیچیده و ناخواناست؟ معادل همین موارد با QueryBuilder لاراول بسیار ساده نوشته شدن. آقای rezakho مثال های خیلی خوبی زدن.
    چه ربطی داشت الان؟ من گفتم QueryBuilder برای انجام کارهای پیچیده به کار میره نه اینکه این کوئریها پیچیده باشن. این موارد ساده رو با AR میشه به راحتی انجام داد و کسی مجبورمون نکرده از QueryBuilder استفاده کنیم. انجام کوئریهای پیچیده با QuieryBuilder خود لاراول هم همینقدر دستورات رو طولانی میکنه.

  4. #84

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    خوب chunk اینکارو نمیکنه، بلکه تا انتها 200 تا 200 تا واکشی میکنه که رم رو قبضه نکنه، مثلا اگر نیاز باشه هزاران رکورد رو پیمایش کنید، شما چکار میکنید؟
    الآن متوجه منظورتون شدم. تا جایی که جستجو کردم، توی خود Yii این قابلیت نیست ولی خیلی چیز مهمی نیست چون با همین دو خط کد میشه معادلسازیش کرد:

    for ($i = 0; $i < Table::model()->count(); $i += 200) {
    foreach (Yii::app()->db->createCommand()->from('table')->limit(200)->offset($i)->queryAll() as $item) { ... }
    }
    آخرین ویرایش به وسیله MMSHFE : چهارشنبه 07 اسفند 1392 در 13:29 عصر دلیل: اشتباه تایپی

  5. #85
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    متشکر
    حالا بریم سراغ کوئری های پیچیده
    ما همچین کوئری داریم، شما با Yii درش بیار بی زحمت

    select * from users where name = 'John' or (votes > 100 and title <> 'Admin')

  6. #86

    نقل قول: Yii vs Laravel

    Users::model()->findAll('name=:name or (votes > :votes and title <> :title)', array(':name'=>'John', ':votes'=>100, ':title'=>'Admin'));

    این روش، علاوه بر اجرای کوئری، مقادیر رو Escape هم میکنه.
    آخرین ویرایش به وسیله MMSHFE : چهارشنبه 07 اسفند 1392 در 13:01 عصر دلیل: خلاصه تر شدن کد

  7. #87
    کاربر دائمی آواتار SlowCode
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اردبیل
    پست
    2,638

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    متشکر
    حالا بریم سراغ کوئری های پیچیده
    ما همچین کوئری داریم، شما با Yii درش بیار بی زحمت

    select * from users where name = 'John' or (votes > 100 and title <> 'Admin')
    گفتین با Yii اینم پاسخ:

    Users::model()->findAllbySql("select * from users where name = 'John' or (votes > 100 and title <> 'Admin')");

    من فکر نمیکنم این طرز مقایسه درست باشه!
    شما باید امکاناتی از لاراول رو بگین که تو Yii وجود نداره!
    شما الان گیر دادین به CreateCommand در صورتی که به قول خودتون و اون یکی دوستمون مهم اینه که فریم ورک راحت ترین راه رو جلوی برنامه نویس بذاره!
    راحت ترین راه هم همون کدی هست که بالا گذاشتم! خود Yii زحمتش رو میکشه! پس نیازی نیست من وقتمو با تبدیل کوئری های پیچیده به زبون CreateCommand تلف کنم!
    میدونم میخوایین برتری یه فریم ورک رو ثابت کنین ولی یکم دارین اشتباه میرین راه رو.

  8. #88
    کاربر دائمی آواتار metal gear solid 4
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد
    پست
    307

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط SlowCode مشاهده تاپیک
    گفتین با Yii اینم پاسخ:

    Users::model()->findAllbySql("select * from users where name = 'John' or (votes > 100 and title <> 'Admin')");

    من فکر نمیکنم این طرز مقایسه درست باشه!
    شما باید امکاناتی از لاراول رو بگین که تو Yii وجود نداره!
    شما الان گیر دادین به CreateCommand در صورتی که به قول خودتون و اون یکی دوستمون مهم اینه که فریم ورک راحت ترین راه رو جلوی برنامه نویس بذاره!
    راحت ترین راه هم همون کدی هست که بالا گذاشتم! خود Yii زحمتش رو میکشه! پس نیازی نیست من وقتمو با تبدیل کوئری های پیچیده به زبون CreateCommand تلف کنم!
    میدونم میخوایین برتری یه فریم ورک رو ثابت کنین ولی یکم دارین اشتباه میرین راه رو.
    ماهیت این تاپیک مقایسست. و به همین روال داره پیش میره. ضمناً معادل این دستور شما با لاراول به مراتب راحتتر نوشته میشه ;)

  9. #89
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    آقای شهرکی، منظورم با Query Builder بود، برادر SlowCode این کد شما، کد sql خام هست، مثال رو با Query Builder بنویسید تا بتونیم مقایسه کنیم

  10. #90

    نقل قول: Yii vs Laravel

    نسخه معادلتون رو بگذارین. Speak in Codes

  11. #91

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    آقای شهرکی، منظورم با Query Builder بود، برادر SlowCode این کد شما، کد sql خام هست، مثال رو با Query Builder بنویسید تا بتونیم مقایسه کنیم
    چه اصراریه که از سیستم سنتی استفاده کنیم وقتی به راحتی میشه کار رو انجام داد؟ میخواین بگین لاراول اینقدر QueryBuilder رو ساده کرده که همه کارها رو میشه باهاش راحت و کوتاه انجام داد؟ خوب در عوض AR در Yii اینقدر قوی و منعطف هست که اصلاً به QueryBuilder نیازی نیست. ولی بهرحال برای اینکه موردی که گفتین جواب داده شده باشه و نخوایم به تفره رفتن از جواب دادن متهم بشیم، اینهم نسخه QueryBuilder :

    Yii::app()->db->createCommand()
    ->from('table')
    ->where('name=John or (votes > 100 and title <> admin)')
    ->queryRow();

    البته برای خوانایی اینطوری نوشتم و نیاز به توضیه نداره که میشه کوتاه هم نوشت:
    Yii::app()->db->createCommand()->from('table')->where('name=John or (votes > 100 and title <> admin)')->queryRow();
    آخرین ویرایش به وسیله MMSHFE : چهارشنبه 07 اسفند 1392 در 14:39 عصر دلیل: عدم نیاز به select وقتی همه فیلدها رو میخوایم

  12. #92
    کاربر دائمی آواتار metal gear solid 4
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد
    پست
    307

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    چه اصراریه که از سیستم سنتی استفاده کنیم وقتی به راحتی میشه کار رو انجام داد؟ میخواین بگین لاراول اینقدر QueryBuilder رو ساده کرده که همه کارها رو میشه باهاش راحت و کوتاه انجام داد؟ خوب در عوض AR در Yii اینقدر قوی و منعطف هست که اصلاً به QueryBuilder نیازی نیست. ولی بهرحال برای اینکه موردی که گفتین جواب داده شده باشه و نخوایم به تفره رفتن از جواب دادن متهم بشیم، اینهم نسخه QueryBuilder :

    Yii::app()->db->createCommand(
    ->from('table')
    ->where('name=John or (votes > 100 and title <> admin)')
    ->queryRow();
    خب در حال حاظر در همین بخش QueryBuilder هستیم.در کوئری شما، نهایتاً شرطهارو باز هم به صورت خام نوشتید.
    کوئری رو بسازید. نه اینکه دستورات خام بنویسید!!

    معادل کدشما:
    DB::table('table')
    ->whereRaw('name=John or (votes > 100 and title <> admin)')
    ->first()

    با QueryBuilder

    DB::table('table')
    ->where('name','John')
    ->orWhere(function($query){
    $query->where('votes','>',100)
    ->where('title','!=','admin');
    })
    ->first();

    با اجازه ایجاد کننده ی تاپیک.

  13. #93

    نقل قول: Yii vs Laravel

    البته یک راه ساده تر هم هست:
    Yii::app()->createCommand("select * from users where name = 'John' or (votes > 100 and title <> 'Admin')")->queryRow();

  14. #94

    نقل قول: Yii vs Laravel

    خوب معادل راهی که شما رفتین، توی Yii هم وجود داره. من خواستم کد رو ساده تر بنویسم :

    Yii::app()->createCommand()
    ->from('table')
    ->where('name=:name', array(':name'=>'John')
    ->orWhere(array('and', 'votes=:votes', 'title<>:title'), array(':votes'=>100,':title'=>'Admin'))
    ->queryRow();

    یا حتی به این شکل (برای خوانایی بیشتر، بازش کردم و نوشتم ولی بدیهیه که میشه خلاصه نوشت) :

    Yii::app()->createCommand()
    ->from('table')
    ->where(
    array(
    'or',
    'name=:name',
    array(
    'and',
    'votes=:votes',
    'title<>:title'
    ),
    array(
    ':votes'=>100,
    ':title'=>'Admin'
    )
    ),
    array(':name'=>'John')
    )->queryRow();

    لینک برای مطالعه بی شتر (به نظر میرسه شما حتی به اندازه Starter هم مستندات Yii رو نخوندین)
    آخرین ویرایش به وسیله MMSHFE : چهارشنبه 07 اسفند 1392 در 15:27 عصر دلیل: درج لینک

  15. #95

    نقل قول: Yii vs Laravel

    واقعا این فریم ورک ها قدرت بسیار زیادی دارن. درسته از نظر نوع استفاده فرق میکنن ولی خیلی از موارد رو دیدن و روش کار کردن. به این نتیجه رسیدم که لاراول چیز بیخودی نیست خیلی عالی روش کار شده و هم این که Yii هم خوب مانور داده و نیازسنجی های هر کودومشون عالیه

  16. #96

    نقل قول: Yii vs Laravel

    قطعاً تاپیکهای مقایسه ای از این دست، اگه به بحث و دعوا ختم نشه و فقط به کار مقایسه بپردازیم، باعث روشن شدن ذهن همه نسبت به تفاوتها و مزایا و معایب فریمورکها خواهد شد.

  17. #97
    کاربر دائمی آواتار metal gear solid 4
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد
    پست
    307

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    خوب معادل راهی که شما رفتین، توی Yii هم وجود داره. من خواستم کد رو ساده تر بنویسم :

    Yii::app()->createCommand()
    ->from('table')
    ->where('name=:name', array(':name'=>'John')
    ->orWhere(array('and', 'votes=:votes', 'title<>:title'), array(':votes'=>100,':title'=>'Admin'))
    ->queryRow();

    یا حتی به این شکل (برای خوانایی بیشتر، بازش کردم و نوشتم ولی بدیهیه که میشه خلاصه نوشت) :

    Yii::app()->createCommand()
    ->from('table')
    ->where(
    array(
    'or',
    'name=:name',
    array(
    'and',
    'votes=:votes',
    'title<>:title'
    ),
    array(
    ':votes'=>100,
    ':title'=>'Admin'
    )
    ),
    array(':name'=>'John')
    )->queryRow();

    لینک برای مطالعه بی شتر (به نظر میرسه شما حتی به اندازه Starter هم مستندات Yii رو نخوندین)
    شما هم انگار فراموش کردید ماهیت این تاپیک چیه. مقایسه . آوردن معادل دستورات. بنده یک کوئری رو در لاراول با QueryBuilder مینوسم شما به خاطر ساده تر بودنش کوئری خام مینویسید؟!!! این چه جور مقایسه ایه؟ چه ارتباطی دارن اینا به هم!!!

    حداقل در زمینه ی سادگی، خوانایی و تمیزی کد، اونی که باید بفهمه میفهمه لاراول سینتکس ساده تر. خواناتر و تمیزتری داره. بحث قابلیتها به کنار.


    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    من اون کدی که گذاشته بودم در جواب شما نبود. آقای rezakho گفتن شما این دستور رو توی yii بنویسید و بحث escape و build کردن و اینا نبود و من هم ساده ترین کدی که میشد کار رو انجام بده نوشتم ولی بعد که پست درج شد دیدم شما زودتر یه پست دیگه درج کردین و من هم پستمو ویرایش کردم. ضمناً بنده هرجایی که یه قابلیت که شاید تو هر صدتا پروژه ده بار هم بطور جدی به کار نیاد، بعنوان نکته کلیدی برای مقایسه مطرح بشه، بی تعارف میگم قابلیت مهمی نیست. اگه به درستی از تمام امکانات AR در yii استفاده بشه شاید تو هیچ پروژه ای نیاز به استفاده از QueryBuilder نباشه یا اگه هم لازم بشه در حد یکی دو تا کوئری پیچیده باشه که نشه با AR نوشت. بخاطر همینه که ساختار QB توی yii ساده سازی نشده. بعلاوه تیم توسعه yii هم بخاطر همین مشکلات بوده که نسخه 2 رو نوشتن که syntax اون فوق العاده بهتر شده ولی هنوز رسمی نیست و بخاطر همین توی این تاپیک من همه جوابها رو دارم با ساختار 1.1.14 میگم که نسبتاً قدیمیتره. پیشنهاد میکنم شما همچنان قابلیتهای لاراول رو مطرح کنید و چون با yii کار نکردین، درموردش قضاوت نکنید و بگذارین خواننده ها نظر بدن و تصمیم بگیرن. اینکه کدوم سینتکس گیج کننده است هم بستگی به خواننده کدها داره. برای مثال کدهای yii من رو برخلاف شما ابداً گیج نمیکنه و این مسئله از یکطرف به سلیقه شخصی و ازطرف دیگه به تواناییها و مهارتهای برنامه نویسی و تجزیه و تحلیل افراد بستگی داره. بنابراین اگه دیدین کدی شما رو گیج میکنه، نیازی نیست بیانش کنید چون شاید برای بقیه اینطور نباشه. بحث رو هم همینجا تمام کنید و به موضوع تاپیک برگردین.
    با این طرز ارسال دادن های شما. مشخص میشه انسان خود بزرگ بینی هستید. سرگیجه شدن هم صرفاً برای بیان پیچیده بودن بی دلیل کوئری های شماست ( Yii ). منظور گیج شدن نیست. درسته مثل شما خودبزرگ بین نیستیم اما حداقل انقدر از خودم میتونم تعریف کنم که بگم با دو تا Array توی یک کوئری گیج نمیشم!!
    آخرین ویرایش به وسیله metal gear solid 4 : چهارشنبه 07 اسفند 1392 در 20:56 عصر

  18. #98
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    دست همه درد نکنه، خیلی خوبه، کم کم داره حال و هوای مقایسه میگیره ;)
    معادل کد لاراول همونی هست که اقای متال (کاش حداقل اسم کوچیک رو میدونستیم) گفتند
    در ضمن نیازی به :filed نداره، خودش scape میکنه


    DB::table('table')

    ->where('name','John')

    ->orWhere(function($query){

    $query->where('votes','>',100)

    ->where('title','!=','admin');

    })

    ->first();

  19. #99

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط metal gear solid 4 مشاهده تاپیک
    شما هم انگار فراموش کردید ماهیت این تاپیک چیه. مقایسه . آوردن معادل دستورات. بنده یک کوئری رو در لاراول با QueryBuilder مینوسم شما به خاطر ساده تر بودنش کوئری خام مینویسید؟!!! این چه جور مقایسه ایه؟ چه ارتباطی دارن اینا به هم!!!

    حداقل در زمینه ی سادگی، خوانایی و تمیزی کد، اونی که باید بفهمه میفهمه لاراول سینتکس ساده تر. خواناتر و تمیزتری داره. بحث قابلیتها به کنار.
    من اون کدی که گذاشته بودم در جواب شما نبود. آقای rezakho گفتن شما این دستور رو توی yii بنویسید و بحث escape و build کردن و اینا نبود و من هم ساده ترین کدی که میشد کار رو انجام بده نوشتم ولی بعد که پست درج شد دیدم شما زودتر یه پست دیگه درج کردین و من هم پستمو ویرایش کردم. ضمناً بنده هرجایی که یه قابلیت که شاید تو هر صدتا پروژه ده بار هم بطور جدی به کار نیاد، بعنوان نکته کلیدی برای مقایسه مطرح بشه، بی تعارف میگم قابلیت مهمی نیست. اگه به درستی از تمام امکانات AR در yii استفاده بشه شاید تو هیچ پروژه ای نیاز به استفاده از QueryBuilder نباشه یا اگه هم لازم بشه در حد یکی دو تا کوئری پیچیده باشه که نشه با AR نوشت. بخاطر همینه که ساختار QB توی yii ساده سازی نشده. بعلاوه تیم توسعه yii هم بخاطر همین مشکلات بوده که نسخه 2 رو نوشتن که syntax اون فوق العاده بهتر شده ولی هنوز رسمی نیست و بخاطر همین توی این تاپیک من همه جوابها رو دارم با ساختار 1.1.14 میگم که نسبتاً قدیمیتره. پیشنهاد میکنم شما همچنان قابلیتهای لاراول رو مطرح کنید و چون با yii کار نکردین، درموردش قضاوت نکنید و بگذارین خواننده ها نظر بدن و تصمیم بگیرن. اینکه کدوم سینتکس گیج کننده است هم بستگی به خواننده کدها داره. برای مثال کدهای yii من رو برخلاف شما ابداً گیج نمیکنه و این مسئله از یکطرف به سلیقه شخصی و ازطرف دیگه به تواناییها و مهارتهای برنامه نویسی و تجزیه و تحلیل افراد بستگی داره. بنابراین اگه دیدین کدی شما رو گیج میکنه، نیازی نیست بیانش کنید چون شاید برای بقیه اینطور نباشه. بحث رو هم همینجا تمام کنید و به موضوع تاپیک برگردین.

  20. #100
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    در لاراول میشه به طریق زیر انواع قفل رو روی کوئری مورد نظر اجرا کرد

    DB::table('users')->where('votes', '>', 100)->lock()->get();
    DB::table('users')->where('votes', '>', 100)->sharedLock()->get();
    DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();

  21. #101

    نقل قول: Yii vs Laravel

    در این مورد زیاد گشتم ولی چیز خاصی توی نسخه 1.1.14 ندیدم. البته میشه با اجرای کوئری انجام داد یکی دو مورد هم دیدم که کلاس ActiveRecord رو توسعه داده بودن و بهش قفل رو اضافه کرده بودن که کار راحتی هم بود. توی نسخه 1.1.14 دو تا Extension هم براش نوشته بودن ولی درهرصورت این قابلیت رو Yii بطور توکار نداشت (تا جایی که من بررسی کردم) و طبیعتاً به این راحتی که لاراول ارائه کرده نبود. توی 2 اعلام کردن بهش اضافه میشه.

  22. #102
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    و اما صفحه بندی!

    در لاراول با یک متد میشه صفحه بندی رو اعمال و با یک متد در view، لینک صفحات رو چاپ کرد


    // fetching
    $posts = DB::table('posts')->paginate(15);


    // writing pagination links
    echo $posts->links();

  23. #103

    نقل قول: Yii vs Laravel

    البته نگفتین posts$ رو مستقیماً توی خود ویو تعریف میکنید یا توی کنترلر و روش ارسال مقادیر از کنترلر به ویو چیه ولی من طبق همون روش استاندارد (تعریف در کنترلر و ارسال به ویو) توضیح میدم:
    $this->render('index', array('posts' => new CArrayDataProvider(Posts::model()->findAll(), array('pagination' => array('pageSize'=>15)))));

    و توی View هم با این کد میشه لینکها رو نشون داد:
    $this->widget('CLinkPager', array('pages' => $posts->pagination));

    البته میشه توی خود ویو هم مقادیر رو بدست آورد ولی استاندارد نیست اما بهرحال، کد این شکلی میشه:

    // fetching
    $posts = new CArrayDataProvider(Posts::model()->findAll(), array('pagination' => array('pageSize'=>15)));
    // writing pagination links
    $this->widget('CLinkPager', array('pages' => $posts->pagination));

    در اینجا باز هم ساختار لاراول رو خلاصه تر و بهتر میبینم ولی یه سؤال داشتم، وقتی از Pagination در لاراول استفاده میشه، با کلیک روی لینک هر صفحه، دوباره کل صفحه درخواست میشه و اندیس صفحه ارسال میشه یا اینکه مثل Yii از AJAX استفاده میکنه و فقط رکوردهای جدید رو استخراج میکنه؟ چون توی Yii فقط رکوردهای صفحه با AJAX درخواست میشه و یکبار هم که دریافت شد، Cache میشه و دوباره درخواست نمیکنه. اگر هم JS غیرفعال باشه بطور خودکار روش معمولی رو به کار میبره.
    آخرین ویرایش به وسیله MMSHFE : پنج شنبه 08 اسفند 1392 در 08:48 صبح

  24. #104
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    بله، واکشی رو در اکشن و نمایش در ویو انجام میشه
    خودش به صورت داخلی ajax نداره، که البته 3-4 خط کد بیشتر نیست
    ضمنا با عرض پوزش باید بگم متاسفانه Yii، ایجکس این موارد رو به بدترین نوع پیاده کرده که نشان از این داره که فقط میخواستند کار انجام بشه حتی به بدترین روش!!! همون که گفتم کل صفحه رو لود میکنه و قسمت مورد نظر رو با DOM میکشه بیرون و جاگذاری میکنه!!!
    ذکر این نکته هم به جاست که چون موتور های جستجو قادر به دنبال کردن محتوای لود شده با ajax نیستند، لذا در سمت front-end عملا ajax لود شدن صفحات اشتباهه، مگر در سمت مدیریت یا مواردی که نیاز به SEO نیست

  25. #105

    نقل قول: Yii vs Laravel

    درسته ولی بهرحال، سؤال من فقط این بود که AJAX رو داره یا نه چون ممکنه بعضی جاها لازم بشه و بخوایم استفاده کنیم. به قول دوستمون، اینکه ازنظر من یا شما اشتباهه یا نه مهم نیست. مهم اینه که این قابلیت رو داره یا نه. ضمناً تمام موارد AJAX رو در Yii میشه Customize کرد که چی بره و چی بیاد و برای مثال، render کامل صدا زده بشه یا renderPartial یا renderInternal یا کلاً پیاده سازیش رو تغییر بدیم و از RegExp بجای DOM استفاده کنیم و کلی کارهای دیگه! بعلاوه بطور خودکار در Yii برای موتورهای جستجو و مواردی که نمیتونن JS و درنتیجه AJAX رو تفسیر و پردازش کنن (مثل مرورگرهای WAP و یا مواردی که JS توی مرورگر کاربر Disable شده)، لینکها بدون AJAX هم کار میکنن و بطور خودکار صفحه بدون قابلیت AJAX بارگذاری میشه. پس تا اینجا مشخص شد که لاراول AJAX بطور توکار نداره و Yii داره. خوبه که این تفاوتها مشخص بشه چون قصدمون امتیاز دادن نیست و فقط میخوایم تفاوتها رو مشخص کنیم. اینکه فرمودین با چند خط کد میشه اضافه کرد، درمورد Lock که گفتیم Yii در نسخه 1.1.14 نداره (تا جایی که من بررسی کردم) هم صدق میکنه ولی موضوع بحث نیست چون اصولاً هر کاری رو میشه اضافه کرد و موضوع بحث ما هسته (Core) فریمورکهاست وگرنه برای Lock توی Yii اکستنشهای خوبی طراحی شده.

  26. #106
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    بله، درسته
    ولی اضافه کردن ajax به لاراول همون زمانی رو میبره که باید ajax در Yii رو کاستوم و یا تصحیح کرد، نه؟!

  27. #107
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    ما بقی موارد هم خیلی اختلاف نداره، مثل order و limit و having و ...، دیگه ازش میگذریم
    خوب مبحث بعدی ORM و یا نام خودش در لاراول، Eloquent هست
    برای تعریف مدل به صورت زیر عمل میکنیم که البته نام جدول در صورتی که جمع نام مدل باشه، نیازی به تعریفش نیست
    مثلا اگر نام مدل User و نام جدول users باشه.

    class User extends Eloquent {
    protected $table = 'my_users';
    }


    از تمام متدهای Query Builder به صورت تمام و کمال با همون سبک و روش، میشه در Eloquent استفاده کرد، بدون هیچ تغییری
    چند تا مثال میارم


    // getting all record
    User::all();

    // by primary id field
    User::find(1);

    // by condition
    User::where('votes', '>', 100)->get();

    // by order , ...
    User::order('votes')->order('id DESC')->limit(10)->get();

    // by custom connection, crross-database
    User::on('mssql')->find(1);

    // aggregates
    User::where('votes', '>', 100)->count();
    User::where('votes', '>', 100)->min('old');

  28. #108

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    بله، درسته
    ولی اضافه کردن ajax به لاراول همون زمانی رو میبره که باید ajax در Yii رو کاستوم و یا تصحیح کرد، نه؟!
    کلاً اضافه کردن AJAX کار خاصی نداره ولی Customizeکردن AJAX در Yii هم خیلی راحته و کار زمانبری نیست. نکته مهم در Yii اینه که بطور خودکار اگه کلاینت امکان استفاده از AJAX رو نداشته باشه، غیرفعال میشه و مثل صفحه معمولی کار میکنه (که حالا کلاینت میتونه موتور جستجو یا مرورگر معمولی یا cURL و... باشه) و این مورد برای SEO و مواردی از این دست، خیلی سودمنده و پیاده سازی این مورد توی لاراول شاید یکم زمان زیادتری نسبت به AJAX ساده لازم داشته باشه.

  29. #109

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    ما بقی موارد هم خیلی اختلاف نداره، مثل order و limit و having و ...، دیگه ازش میگذریم
    خوب مبحث بعدی ORM و یا نام خودش در لاراول، Eloquent هست
    برای تعریف مدل به صورت زیر عمل میکنیم که البته نام جدول در صورتی که جمع نام مدل باشه، نیازی به تعریفش نیست
    مثلا اگر نام مدل User و نام جدول users باشه.

    class User extends Eloquent {
    protected $table = 'my_users';
    }
    توی Yii هم به همین شکله فقط اسمش عوض شده و بجای Eloquent بهش میگه ActiveRecord و تعریفش هم اینطوریه:
    class User extends CActiveRecord {
    public function tableName() {
    return {{users}};
    }

    که البته این ساختار {{users}} توی Yii که توی همه کوئریها میشه استفاده کرد و بجای users اسم جدول موردنظر رو گذاشت، خیلی سودمنده و مثلاً اگه توی تنظیمات اتصال دیتابیس خاصیت tablePrefix رو با مقدار _tbl تنظیم کرده باشیم، خروجی این متد tbl_users خواهد بود و بعداً هم اگه پیشوند جداول رو تغییر بدیم، یکجا توی تنظیمات اعمال میشه و هرجا از {{users}} استفاده کرده باشیم، پیشوند جدید بهش اضافه میشه.
    از تمام متدهای Query Builder به صورت تمام و کمال با همون سبک و روش، میشه در Eloquent استفاده کرد، بدون هیچ تغییری
    ActiveRecord معمولاً در Yii ساختار ساده تری نسبت به QueryBuilder ارائه میده ولی با $this->db و $this->commandBuilder میشه به اتصال و QueryBuilder مربوطه دسترسی داشت و دستورات پیچیده تر رو ازطریق اونها صدا زد. کلاً وجود دو قابلیت یکسان رو در دو جای مختلف نمیپسندم و اینکه ساختار AR در Yii دقیقاً مثل QB نیست و ساده تره، بنظرم یک مزیته. برای نمونه، همون مثالهای شما رو با AR در Yii بازنویسی میکنم:

    // getting all record
    User::model->findAll();

    // by primary id field
    User::model()->findByPk(1);

    // by condition
    User::model->findAll('votes > :votes', array(':votes'=>100));

    // by order , ...
    User::model()->findAll(array('order'=>'votes, id DESC'), 'limit'=>10);

    // by custom connection, cross-database
    // because multi-connection in one model is not exist and usual because of differences in DBMS's,
    // we should use one model on each connect
    // or add a method to the model to switch db connection
    public static function switchDb() {
    self::$db = (self::$db == Yii::app()->db ? Yii::app()->anotherDb : Yii::app()->Db);
    self::$db->active = true;
    }
    User::model()->switchDb(); // switch
    User::model()->findByPk(1); // fetch
    User::model()->switchDb(); // revert

    // aggregates
    User::model()->count('votes > :votes', array(':votes'=>100));

    // this one often done via CDbCommand->queryColumn
    // but to do it via CActiveRecord, we should add a public propert to the model:
    public $min_old;
    // then use a code like this in controllers:
    User::model()->find(
    new CDbCriteria(
    array(
    'select'=>'min(old) as min_old',
    'condition'=>'votes > :votes',
    'params'=>array(':votes'=>100),
    )
    )
    );

    البته همونطور که گفتم، اگه مورد آخر رو با queryColumn از QB بدست بیاریم، کدمون خلاصه تر میشه که چون الآن موضوع بحث AR و مقایسه با Eloquent هست، از ارائه کدش صرفنظر کردم. البته این کار رو با اضافه کردن ارتباطهای self::STAT به AR هم میشه انجام داد ولی از اونجا که حدس میزنم Laravel هم چنین قابلیتی رو ممکنه داشته باشه، میگذارم واسه وقتی که بحث Statistic Relations رو توی لاراول مطرح کردین (اگه داشته باشه) درموردش کامل توضیح بدم.

  30. #110
    کاربر جدید آواتار mousavi711i
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    شیراز
    پست
    21

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    قرار نیست از همه امکانات یک فریم ورک استفاده بشه، ما فقط داریم در این مورد، از روت ساده حرف میزنیم
    نمیدونم، اگر نقطه ضعف هست که Symfony و Slim و Silex و Fuel و kohana و .... همه اینجوریند!!!
    این مورد رو بگذریم و بگذاریم دیگران قضاوت کنند

    چرا بسمت symfonyنمیری
    نسخه 2.3 اش عالیه
    تمامی این ویژگی های رو که میگید داره
    و بسیاری از ویژگی های دیگر

    خیلی دوست دارم نظر شما دوستان عزیز و درمورد فریم ورک symfonyبدونم.

  31. #111
    کاربر جدید آواتار mousavi711i
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    شیراز
    پست
    21

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    درسته. سابقه کارکرد با هر دو خیلی در مقایسه منصفانه مؤثره به شرطی که با آخرین تغییرات در نسخه های جدید هم تجربه کارکرد داشته باشیم. برای مثال، اگه من دو سال قبل با NET. کار کرده باشم و بیام با امروز PHP مقایسه کنم، یک قیاس اشتباه رو انجام دادم.
    دوست دارم نظر شما رو در رابطه با فریم ورک قدرتمند symfonyرو بدونم
    مخصوصا نسخه 2 به بعدش عالیه یه نگاه به این آدرس بندازید
    http://symfony.com/

    تمام ویژگی های رو که گفتید داره

  32. #112
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    چرا بسمت symfonyنمیری
    نسخه 2.3 اش عالیه
    تمامی این ویژگی های رو که میگید داره
    و بسیاری از ویژگی های دیگر

    خیلی دوست دارم نظر شما دوستان عزیز و درمورد فریم ورک symfonyبدونم.
    سیمفونی یکی از کارامدترین فریمورکهای موجوده، اوایل تاپیک هم گفته شد که بیش از 90 درصد کارها رو با هر فریمورک و حتی زبانی میشه انجام داد، شاید آیتم هایی که در انتخاب موثرند اینها باشند، کارایی، سرعت توسعه، کد قابل فهم تر و کوتاه تر، امکانات و در اخر سلیقه

    نظر من اینه که سیمفونی در عین کارایی و امکانات، سینتکس (البته منظور همون پیچیدگی هست) سخت تری نسبت به لاراول و حتی یی داره، لذا الان من سراغش نمیرم، شاید روزی باش کار کنم و ازش خوشم بیاد، در مقایسه هایی هم که تا به حال دیدم و خودم تست کردم، هسته اش بدون دستکاری کند تر از Yii و Laravel هست، به قول نیوتون (با دستکاری البته) لاراول و یی اگر در قله ها هستند، به این خاطره که بر روی دوش غول ها ایستاده اند.

  33. #113
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE
    کلاً وجود دو قابلیت یکسان رو در دو جای مختلف نمیپسندم و اینکه ساختار AR در Yii دقیقاً مثل QB نیست و ساده تره
    به نظرم وجود یک ساختار واحد در تمام بخش های فریمورک مزیت هست، نه عیب!!!
    و اینکه فرمودید ساختار AR در یی ساده تر از QB در لاراول هست، یکبار دیگه نمونه کدهای هر دو مون رو کنار هم میگذارم

    // laravel
    User::all();
    // yii
    User::model->findAll();


    // laravel
    User::find(1);
    // yii
    User::model()->findByPk(1);


    // laravel
    User::where('votes', '>', 100)->get();
    // yii
    User::model->findAll('votes > :votes', array(':votes'=>100));


    // laravel
    User::orderBy('votes')->orderBy('id DESC')->limit(10)->get();
    // yii
    User::model()->findAll(array('order'=>'votes, id DESC'), 'limit'=>10);


    // laravel
    User::on('mssql')->find(1);
    // yii
    public static function switchDb() {

    self::$db = (self::$db == Yii::app()->db ? Yii::app()->anotherDb : Yii::app()->Db);

    self::$db->active = true;

    }
    User::model()->switchDb(); // switch
    User::model()->findByPk(1); // fetch
    User::model()->switchDb(); // revert


    // laravel
    User::where('votes', '>', 100)->count();
    // yii
    User::model()->count('votes > :votes', array(':votes'=>100));


    // laravel
    User::where('votes', '>', 100)->min('old');
    // yii
    public $min_old;
    User::model()->find(
    new CDbCriteria(
    array(
    'select'=>'min(old) as min_old',
    'condition'=>'votes > :votes',
    'params'=>array(':votes'=>100),
    )
    )
    );

  34. #114

    نقل قول: Yii vs Laravel

    دوست عزیز من گفتم ساختار AR بهتر و خلاصه تر از QB هست و هر دوش منظورم تو خود Yii بود. ضمناً الآن مقایسه شما بین AR در Yii و Eloquent در لاراول هست نه با استفاده از QB لاراول. بعلاوه در Yii2 تابع ()model حذف شده و مثل لاراول خلاصه و کوتاه شده.

  35. #115

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط mousavi711i مشاهده تاپیک
    دوست دارم نظر شما رو در رابطه با فریم ورک قدرتمند symfonyرو بدونم
    مخصوصا نسخه 2 به بعدش عالیه یه نگاه به این آدرس بندازید
    http://symfony.com/

    تمام ویژگی های رو که گفتید داره
    سیمفونی فریمورک خیلی خوب و قدرتمندیه و خیلی از فریمورکهای دیگه بخشهایی از خودشون رو مدیون اون هستن ولی دو مشکل لساسی داره که یکیش پرفورمنس پایینتر نسبت به بقیه و یکی دیگه هم سختگیریهایی هست که گاهی اوقات اعصاب برنامه نویس رو بهم میریزه تا جایی کع از خود PHP هم بعضاً سختگیرتر میشه. البته من با سختگیری قانونمند درجهت رعایت چهارچوب کاری موافقم ولی سیمفونی دیگه خیلی در این زمینه زیاده روی میکنه. بهرحال این تاپیک برای مقایسه Yii و لاراول هست و بهتره برای مقایسه یا معرفی سیمفونی تاپیک جداگانه ایجاد کنید.

  36. #116
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    دوست عزیز من گفتم ساختار AR بهتر و خلاصه تر از QB هست و هر دوش منظورم تو خود Yii بود
    راستش از جملتون من همچین برداشتی کردم! به هر حال ممنون


    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    ضمناً الآن مقایسه شما بین AR در Yii و Eloquent در لاراول هست نه با استفاده از QB لاراول
    عرض کردم،QB و Eloquent در لاراول یکی هستند، هر دو از متدهای مشترک استفاده میکنند

  37. #117
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    خوب
    یک سری متدهای جالب داره لاراول که همه رو یکجا میارم یک مرور کلی داشته باشیم
    البته موارد اختلافی رو میارم و از مشترک ها میگذرم

    ایجاد یک رکورد جدید (البته اون روش new رو ازش میگذرم)
    رکورد ایجاد، ذخیره و برگشت داده میشه

    $user = User::create(array('name' => 'John'));



    رکورد در صورت وجود برگشت داده میشه و در غیر این صورت ایجاد، ذخیره و برگشت داده میشه

    $user = User::firstOrCreate(array('name' => 'John'));



    رکورد در صورت وجود برگشت داده میشه و در غیر این صورت فقط ایجاد میشه و ذخیره نمیشه

    $user = User::firstOrNew(array('name' => 'John'));



    ذخیره مدل به همراه relationship ها در پایگاه داده

    $user->push();



    ویرایش جمعی رکوردها

    $affectedRows = User::where('votes', '>', 100)->update(array('status' => 2));



    حذف رکورد ها با id

    User::destroy(1);
    User::destroy(array(1, 2, 3));
    User::destroy(1, 2, 3);

    $affectedRows = User::where('votes', '>', 100)->delete();



    آپدیت کردن فیلد آخرین زمان تغییر

    $user->touch();



    برای اینکه شلوغ نشه، ما بقی رو توی پست جداگونه میارم

  38. #118

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    عرض کردم،QB و Eloquent در لاراول یکی هستند، هر دو از متدهای مشترک استفاده میکنند
    پس چرا لاراول اینهمه از Eloquent بعنوان یک ویژگی خوب یاد میکنه؟ خوب میومد رک و راست به همه میگفت یک Alias برای QB درست کرده و خیال خودش و بقیه رو راحت میکرد!

  39. #119
    کاربر دائمی
    تاریخ عضویت
    دی 1389
    محل زندگی
    اراک
    پست
    409

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    پس چرا لاراول اینهمه از Eloquent بعنوان یک ویژگی خوب یاد میکنه؟ خوب میومد رک و راست به همه میگفت یک Alias برای QB درست کرده و خیال خودش و بقیه رو راحت میکرد!
    عجب حرفی میزنید، Eloquent یک ORM هست، مثل ActiveRecord در یی، یعنی یک لفاف روی متدهای کار با پایگاه داده، اون موارد که من توی پست قبلی گفتم موارد اختلافی بود، وگرنه اون ساختار واسط شی گرایی رو به هیچ وجه از دست نداده و هنوز خیلی چیزهاش مونده، ضمن اینکه فکر میکنید ساختار داخلی AR در یی چه شکلیه؟!
    در یی هم این اتفاق میافته، یعنی شما از AR استفاده میکنید، AR داده ها رو به QB میده و اونجا SQL اجرا میشه و روند معکوس اجرا میشه دوباره شما با شی سر و کار دارید.

  40. #120

    نقل قول: Yii vs Laravel

    نقل قول نوشته شده توسط rezakho مشاهده تاپیک
    ایجاد یک رکورد جدید (البته اون روش new رو ازش میگذرم)
    رکورد ایجاد، ذخیره و برگشت داده میشه
    $user = User::create(array('name' => 'John'));
    در Yii میشه اینکار رو اینطوری انجام داد:
    $user = User::model()->insert(array('name'=>'John'));

    رکورد در صورت وجود برگشت داده میشه و در غیر این صورت ایجاد، ذخیره و برگشت داده میشه
    $user = User::firstOrCreate(array('name' => 'John'));
    معادل Yii:
    $user = User::model()->save(false, array('name'=>'John'));

    رکورد در صورت وجود برگشت داده میشه و در غیر این صورت فقط ایجاد میشه و ذخیره نمیشه
    $user = User::firstOrNew(array('name' => 'John'));
    معادل Yii:
    $user = User::model()->save(true, array('name'=>'John'));

    توضیح: پارامتر اول وقتی True هست یعنی Validationها اعمال بشن. پس اگه یک فیلد رو توی Validaion Ruleها بصورت Unique تعریف کرده باشیم، دیگه ایجاد نمیکنه.
    ذخیره مدل به همراه relationship ها در پایگاه داده
    $user->push();
    لطفاً درموردش بیشتر توضیح بدین چون منظورتون رو از این بخش متوجه نشدم.
    ویرایش جمعی رکوردها
    $affectedRows = User::where('votes', '>', 100)->update(array('status' => 2));
    معادل Yii :
    $affectedRows = Users::model()->updateAll(array('status'=>2), 'votes>:votes', array(':votes'=>100));

    حذف رکورد ها با id

    User::destroy(1);
    User::destroy(array(1, 2, 3));
    User::destroy(1, 2, 3);
    $affectedRows = User::where('votes', '>', 100)->delete();
    معادل Yii :

    Users::model()->deleteByPk(1);
    Users::model()->deleteByPk(array(1, 2, 3));
    $affectedRows = Users::model()->deleteAll('votes>:votes', array(':votes'=>100));

    آپدیت کردن فیلد آخرین زمان تغییر
    $user->touch();
    معادل Yii :
    $user->saveCounters('visit'=>1);

    البته ناگفته نمونه که اگه فیلد آخرین تغییرات رو از نوع timestamp گذاشته باشیم و مقدار Default رو هم CURRENT_TIMESTAMP تعیین کرده باشیم، با انجام $user->save(); بطور خودکار فیلد مذکور بروزرسانی میشه.
    آخرین ویرایش به وسیله MMSHFE : جمعه 09 اسفند 1392 در 13:53 عصر دلیل: بسته نشدن تگ نقل قول

صفحه 3 از 9 اولاول 12345 ... آخرآخر

تاپیک های مشابه

  1. حرفه ای: ایجاد بخش Yii Framework
    نوشته شده توسط sanay_esh در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: شنبه 20 آبان 1391, 23:32 عصر
  2. آموزش: Yii Framework - قسمت دوم
    نوشته شده توسط milanFan در بخش PHP
    پاسخ: 2
    آخرین پست: یک شنبه 21 خرداد 1391, 13:31 عصر
  3. Yii Framework
    نوشته شده توسط JavaDeveloper در بخش PHP
    پاسخ: 3
    آخرین پست: پنج شنبه 10 فروردین 1391, 18:32 عصر
  4. حرفه ای: Yii Framework راه اندازی UnitPHP جهت تست Unit ها
    نوشته شده توسط ostovarit در بخش PHP
    پاسخ: 0
    آخرین پست: جمعه 20 خرداد 1390, 12:38 عصر
  5. Yii Framework چیست؟
    نوشته شده توسط ostovarit در بخش توسعه وب (Web Development)
    پاسخ: 0
    آخرین پست: جمعه 20 خرداد 1390, 12:34 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •