نمایش نتایج 1 تا 6 از 6

نام تاپیک: چند نکته در PHP برای حرفه ای شدن!

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر تازه وارد آواتار Pedram77
    تاریخ عضویت
    فروردین 1394
    محل زندگی
    Tehran
    پست
    91

    Cool چند نکته در PHP برای حرفه ای شدن!

    سلام.
    من چند تا ترفند PHP بلدم که تو پروژه هام خیلی ازشون استفاده میکنم .این نکات خیلی ظریفند ولی توی صرفه جویی زمان خیلی عالین. پس نکات رو میگم:

    میانبر برای else :

    روش قدیمی:

    if($a=10)
    $b="Ten";
    else
    $b="Not Ten";
    راه میانبر :

    $b="Not Ten";
    if($a=10)
    $b="Ten";
    از بین بردن براکت های اضافه :

    روش قدیمی :


    if($text=="over")
    {
    $height++;
    }

    for($x=1;$x<=10;$x++)
    {
    echo "RUN ";
    }
    روش بهینه :

    if($text=="over") $height++;

    for($x=1;$x<=10;$x++)
    echo "RUN ";
    از عملیات های بهینه استفاده کنید:

    روش قدیمی :

    if(empty($_REQUEST["username"]))
    {
    $user = "none";
    }
    else
    {
    $user = $_REQUEST["username"];
    }
    روش بهینه :

    $user = (empty($_REQUEST["username"]))? "none" : $_REQUEST["username"];
    از یک فریم ورک استفاده کنید (خیلی مهم) :

    خیلی سخت است اگر بخواهید یک پروژه ی بزرگ را از پایه طراحی کنید! فریم ورک یک چهار چوب در PHP تعیین میکند و شما لازم نیست "چرخ را از نو بسازید" در واقع سرعت نوشتن پروژه ی شما را خیلی بالا میبرد. برای PHP فریم ورک های زیادی وجود داره که چند تا از آنها را مینویسم:

    • Cake PHP
    • Zand
    • Symfony
    • CodeIgniter
    • ...


    برای مدیریت error از @ استفاده کنید :

    روش قدیمی :

    if(isset($a))
    $b = $a;
    else
    $b = null;
    روش جدید :

    $b = @$a;



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

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آذر 1390
    محل زندگی
    کرمان
    پست
    1,461

    نقل قول: چند نکته در PHP برای حرفه ای شدن!

    سلام روش هایی که من به ذهنم رسید ایناست:
    میابر برای else: $b = ($a == 10?'Not ':'').'Ten';

    در return ها : بجای
    return $variable == true ? true : false;
    از
    return $variable
    استفاده کنیم.

    چندتا لینک:
    http://ashiyane.org/forums/showthread.php?13089

    http://forum.iranphp.org/Thread-%D9%...%D8%B3%DB%8C-2

    http://weblearn.blogfa.com/post-242.aspx

  3. #3

    نقل قول: چند نکته در PHP برای حرفه ای شدن!

    نقل قول نوشته شده توسط Pedram77 مشاهده تاپیک

    $b = @$a;
    توصیه میکنم تا میتونید از استفاده از @ پرهیز کنید.
    بخاطر اینکه این کار باعث میشه هرگونه خطا و اطلاعاتی خاموش بشه، و این میتونه باعث ایجاد باگهایی در برنامه بشه که آدم متوجه نشه (چون هیچ نشانه و پیامی دیده نمیشه). این عملگر باعث میشه هیچ پیام خطایی حتی در error logging هم ثبت نشه (منظورم ثبت خطاها در فایله و نه نمایش در مرورگر).
    من خودم اخیرا که اومدم و یکسری از @ های غیرضروری رو از برنامم حذف کردم متوجه یکی از این موارد که ازش غفلت کرده بودم ولی بعلت وجود @ هیچوقت هیچ نشانه ای رو ازش ندیده بودم شدم.
    باگ هم لزوما چیزی نیست که در کارکرد ظاهری برنامه اختلال و خطای واضحی ایجاد کنه که از راههای دیگه بتونید متوجه بشید. بعضی موارد میتونن امنیتی هم باشن.
    این کد:
    if(isset($a))
    $b = $a;
    else
    $b = null;

    بنظر من خیلی اصولی تره.
    حالا شاید به شکلهای دیگری هم بشه نوشت، ولی بهرصورت خطاها و پیامهای PHP رو نباید خاموش کرد.

    ضمنا بطور معمول شما نمایش پیامها رو فقط موقع توسعه و تست فعال دارید، و موقعی که برنامه deploy میشه (یعنی روی سرورهای اصلی برای کاربرد واقعی میره)، نمایش پیامهای خطا رو خاموش میکنید. البته error logging رو که باید همیشه داشته باشید. بطور کلی هم هرجای برنامه، PHP پیام و هشداری میده، باید علتش پیدا و رفع بشه در زمان توسعه و تست، نه اینکه با @ خفه خونش کنید! یه وقتا هم میبینی که توسعه و تست رو انجام دادید و ظاهرا مشکلی نبود، ولی یکسری شرایط خاص در عمل و بعد از deployment پیش میان که در جریان توسعه و تست مشخص نشده بودن، بنابراین بازهم اهمیت داره که از @ استفاده نکرده باشید تا اینطور موارد اونوقت بتونن سریع و راحت تشخیص داده بشن (حداقل هر چند وقت یک بار یه سری به error log برنامه بزنید).

    البته من خودم هنوز در جاهایی از برنامم از @ استفاده کردم که اونا رو حذف نکردم، چون دیدم براحتی نمیشه این کار رو کرد و نیاز به فکر و تمهید بیشتری داره، ولی در اون موارد خطاهای مورد انتظار توسط خود برنامه هندل شدن. مثلا یک نمونه کد در کلاس دیتابیس خودم:
    $this->link= @ mysql_connect($host, $user, $pass);
    if(!$this->link) {
    $this->error();
    return;
    }

    در این کد مشاهده میکنید که با اینکه از @ استفاده شده اما در خط بعدی رخ دادن خطای اتصال چک شده.
    البته خوبه الان که این بحثها رو کردم یاد این موارد افتادم و باید دوباره برگردم روش فکر کنم ببینم آیا قابل توجیه هست یا نه و ببینم آیا @ ها رو حتی در این موارد حذف کنم و داستان رو طور دیگری هندل کنم یا نه. چون بهرحال استفاده از @ حتی در این موارد هم چندان مطلوب و بدون ریسک بنظر نمیرسه. باید بیشتر روش فکر و تحلیل بشه

  4. #4

    نقل قول: چند نکته در PHP برای حرفه ای شدن!

    بهتره برای رعایت استانداردها و جلوگیری از بروز خطاهای ناخواسته در ویرایشهای بعدی کدها (ازقبیل اضافه شدن دستورات بلاک if و...)، Bracket ها رو هم حذف نکنید. حتی اگه یک دستور دارین.

    از REQUEST_$ هم استفاده نکنید و مشخص کنید که با GET میخواین کار کنین یا POST

    درمورد خطای این کد هم:
    $this->link= @ mysql_connect($host, $user, $pass);
    if(!$this->link) {
    $this->error();
    return;
    }

    بهتره اینطوری کار کنید:
    class DB
    {
    private $link;

    public function connect($host, $user, $pass, $db)
    {
    if(!$this->link) {
    if(!($this->link = mysql_connect($host, $user, $pass))) {
    $this->error('Connection error');
    }
    elseif(!mysql_select_db($db, $this->link)) {
    $this->error('Database error');
    }
    else {
    mysql_query('SET NAMES \'utf8\'');
    }
    }
    }

    public function query($query)
    {
    $this->connect();
    return mysql_query($query, $this->link);
    }

    // ...
    }
    آخرین ویرایش به وسیله MMSHFE : چهارشنبه 12 فروردین 1394 در 13:06 عصر دلیل: اصلاح کد

  5. #5
    کاربر دائمی آواتار j_naroogha@yahoo.com
    تاریخ عضویت
    آبان 1388
    محل زندگی
    Microfoft Visual Studio Ultimate Version
    سن
    33
    پست
    388

    نقل قول: چند نکته در PHP برای حرفه ای شدن!

    نقل قول نوشته شده توسط Pedram77 مشاهده تاپیک
    سلام.
    من چند تا ترفند PHP بلدم که تو پروژه هام خیلی ازشون استفاده میکنم .این نکات خیلی ظریفند ولی توی صرفه جویی زمان خیلی عالین. پس نکات رو میگم:

    میانبر برای else :

    روش قدیمی:

    if($a=10)
    $b="Ten";
    else
    $b="Not Ten";
    راه میانبر :

    $b="Not Ten";
    if($a=10)
    $b="Ten";
    از بین بردن براکت های اضافه :

    روش قدیمی :


    if($text=="over")
    {
    $height++;
    }

    for($x=1;$x<=10;$x++)
    {
    echo "RUN ";
    }
    روش بهینه :

    if($text=="over") $height++;

    for($x=1;$x<=10;$x++)
    echo "RUN ";
    از عملیات های بهینه استفاده کنید:

    روش قدیمی :

    if(empty($_REQUEST["username"]))
    {
    $user = "none";
    }
    else
    {
    $user = $_REQUEST["username"];
    }
    روش بهینه :

    $user = (empty($_REQUEST["username"]))? "none" : $_REQUEST["username"];
    از یک فریم ورک استفاده کنید (خیلی مهم) :

    خیلی سخت است اگر بخواهید یک پروژه ی بزرگ را از پایه طراحی کنید! فریم ورک یک چهار چوب در PHP تعیین میکند و شما لازم نیست "چرخ را از نو بسازید" در واقع سرعت نوشتن پروژه ی شما را خیلی بالا میبرد. برای PHP فریم ورک های زیادی وجود داره که چند تا از آنها را مینویسم:

    • Cake PHP
    • Zand
    • Symfony
    • CodeIgniter
    • ...


    برای مدیریت error از @ استفاده کنید :

    روش قدیمی :

    if(isset($a))
    $b = $a;
    else
    $b = null;
    روش جدید :

    $b = @$a;



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

    همه ترفندهات که نقض شد بوسیله دوستان....

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اسفند 1393
    محل زندگی
    تهران
    پست
    174

    نقل قول: چند نکته در PHP برای حرفه ای شدن!

    ممنون ولی مواردی که فرمودید قدیمی و جدید نبودن و اکثرا در نسخه های قدیمی php هم قابل پیاده سازی بود ....
    اتفاقا استفاده از آکولاد { } خیلی بهتره !
    خوانا تر میشه ...

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

  1. زمان برای حرفه ای شدن
    نوشته شده توسط Golsha در بخش jQuery
    پاسخ: 2
    آخرین پست: دوشنبه 23 دی 1392, 00:24 صبح
  2. چند ORM در PHP برای MySQL معرفی کنید
    نوشته شده توسط Mousavmousab در بخش PHP
    پاسخ: 2
    آخرین پست: پنج شنبه 12 دی 1392, 17:35 عصر
  3. سوال: آیا برای حرفه ای شدن در سیستم مدیریت محتوای جوملا باید PHP بلد بود؟
    نوشته شده توسط complexcoding در بخش توسعه وب (Web Development)
    پاسخ: 1
    آخرین پست: پنج شنبه 27 مهر 1391, 23:11 عصر
  4. سوال: معرفی یه pdf درست و حسابی برای حرفه ای شدن
    نوشته شده توسط saeedgharedaghi در بخش ASP.NET Web Forms
    پاسخ: 12
    آخرین پست: سه شنبه 22 شهریور 1390, 08:01 صبح
  5. در خواست راهنمایی برای حرفه ای شدن
    نوشته شده توسط xman_dj در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: دوشنبه 11 آذر 1387, 15:14 عصر

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

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

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