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

نام تاپیک: برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

  1. #1

    Question برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

    سلام دوستان
    من برای یک کار خاص در سایت که بارها و بارها مورد استفاده قرار میگیره برای اینکه نیاز نباشه در همه جای سایت صدبار کد رو بنویسیم کدها رو تبدیل کردم به function و فقط در جای مورد نظر اون رو فراخوانی میکنم و مقادیر مربوطه رو بهش میدم

    یک سری فیلدهای خاص دارم که هر کدوم باید چندین بررسی خاص روی مقدار اونها انجام بشه
    - مثلاً فیلد نوع A باید از نظر تعداد کاراکتر حداقل و حداکثر و نوع کاراکتر ورودی بررسی بشه
    - فیلد نوع B باید از نظر تعداد لغت بررسی بشه
    - فیلد نوع C باید از نظر استفاده از کاراکترهای خاص مورد بررسی قرار داده بشه
    - فیلد نوع D باید بررسی بشه که حداقل دو نوع از چهار گروه کاراکتر توی اون وجود داشته باشه

    حالا چون در جاهای مختلفی از سایت از این فیلدها در فرمهای مختلف استفاده شده و باید با PHP مقدار وارد شده در هر کدام مورد بررسی قرار بگیره، من اومدم چهار تابع برای هر کدام تعریف کردم که مقدار هر کدام را به تابع مربوطه به خودش میدم و از نتیجه اون استفاده میکنم

    (البته در آینده این چهار نوع به 8 نوع تبدیل میشه و باید چهار تابع دیگه هم کدنویسی و اضافه بشه)

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

    * یا حتی بهتر بپرسم سوالم رو :
    چه مواقعی یک برنامه نویسی میاد و توابعش رو به یک کلاس تبدیل میکنه ؟
    چه مزایایی داره استفاده از یک کلاس که مثلاً از 8 تابع تشکیل شده باشه با اینکه توابع مجزا باشند؟
    آیا با توجه به اینکه هر فیلد عملیات کاملاً متفاوتی روی اون انجام میشه و تنها بخشی که بین دو تا از اونها یکسان هست بررسی حداقل و حداکثر طول کاراکترشون هست، آیا به یک کلاس تبدیل کنم بهتر هست ؟

    ببخشید توضیحات طولانی شد چون واقعا نمیدونستم چطور مطرح کنم که به جواب مورد نظرم برسم
    هر چقدر سرچ کردم فقط از نحوه ایجاد کلاس مطلب پیدا میشد
    لطفاً من رو راهنمایی کنید

  2. #2

    نقل قول: برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

    سلام

    شما می توانید در عرض چند ساعت php یاد بگیرید, به راحتی تابع بسازید, کلاس ایجاد کنید ولی برای ساخت یک برنامه کاربردی باید کدهای برنامه نویس های حرفه ای را مطالعه کنید مثلا از framework هایی مانند zend و ... استفاده کنید ببینید کلاس های form و validation را چطور ساخته و استفاده می کنند.

    برای اینکه ذهنیت داشته باشید. فرض کنید میخوام یک مشتری جدید تعریف کنم. در بخش کنترلر برنامه کافیه من این دستورات را وارد کنم.
    require_once("forms/customer.php");
    $form = new Form_Customer();

    if($_POST['submit']){
    if($form->isValid($_POST)){
    //save user in database
    //redirect user to result page

    }else{
    $errors = $form->getErrors();
    }
    }
    $this->view->form = $form;



    تمامی بخش اعتبارسنجی فرم را در متد isValid از فرم مشتری درج کرده ام.

    حالا یک کلاس دیگه ایجاد کردم که متدهای پرکاربرد اعتبارسنجی را داخل آن درج کرده ام. و می توانم بارها از آن استفاده کنم. کاری که شما قصد دارید انجام دهید. و به راحتی از آنها در متد isValid فرمم استفاده می کنم.
    آخرین ویرایش به وسیله ali_sed : پنج شنبه 02 خرداد 1398 در 12:34 عصر

  3. #3

    نقل قول: برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

    دوست عزیز ممنونم از پاسخ شما، بنده اطلاع دارم چطور باید تابع ایجاد کنم و چطور فرم را اعتبار سنجی کنم؛ سوال من این بود که الان فرم های من لاگین و ... نیست و فقط از فیلدهای ثابت تشکیل شده که توضیح دادم؛ میخواستم بدونم در کل همچنین کاری بصورت یک کلاس استانداردتر و بهتر هست و یا بصورت چند تابع مجزا

    سرعت عملکرد کدومشون بالاتره ؟!
    مثلاً اگر من 8 تابع مختلف داشته باشم و در زمان مورد نیاز فرضاً 4 مورد از اونها رو فراخوانی کنم بهتر هست و یا اینکه یک کلاس داشته باشم که هر 8 تابع توی اون کلاس درج شده باشند و کلاس رو فراخوانی کنم و با استفاده از کلاس بررسی های مورد نظر رو انجام بدم؟

    سرعت کدوم حالت بیشتره و کدوم حالت صحیح تر هست ؟

  4. #4

    نقل قول: برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

    انقدر تفاوت سرعتش کم هست که میشه گفت از نظر سرعت فرقی ندارند. ولی اگه کدهات رو داخل کلاس داشته باشی می تونی از ویژگی های کلاس استفاده کنی و حداقلش اینکه دسته بندی کدهات هم بهتر میشه

  5. #5

    نقل قول: برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

    سلام

    اعتبار سنجی را با هویت سنجی در هنگام لاگین اشتباه نگیرید. هویت سنجی کاربر بخشی از اعتبارسنجی کل فرم است که من ایجاد کاربر را به عنوان مثلا گفتم (ربطی به لاگین نداره).
    به هر حال نمونه ای از یک قطعه کد که اعتبارسنجی فرم را با کلاس انجام میدهد برای شما ارسال کردم. کافیست شما تمامی بررسی های خود را در متد isValid قرار دهید.

    اما در مورد اینکه کدام روش صحیح تر است باید بگم هر جفتش درسته و هیچ ایرادی نداره از هر کدام که دوست دارید استفاده کنید. به عنوان مثلا وردپرس از جمله برنامه هایی است که با توابع نوشته شده است.

    سرعتشون نسبت به نسخه php شما متفاوت است در اینترنت جستجو کنید. (اما با توجه به کندی لود فایل و دریافت اطلاعات از دیتابیس و ... بسیار ناچیز است)

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

  6. #6
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: برای این کار چند تابع ایجاد کنم یا یک کلاس در PHP ؟؟؟

    مزیت شی گرایی قابلیت ساختار بندی کد هاست به عبارت دیگه از جنبه مدیریتی و پکیج بندی و چیدمان کد ها تاثیر داره
    تا وقتی یک پروژه متوسط/بزرگ انجام ندی متوجه نمشی این چقد مهمه و کارت رو ساده میکنه

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

  1. ## فرق #C با ویژوال بیسیک چیه؟؟؟ کدوم بهتره؟؟؟ ##
    نوشته شده توسط XNersiA در بخش C#‎‎
    پاسخ: 2
    آخرین پست: جمعه 15 بهمن 1395, 21:56 عصر
  2. سوال: آیا می توان داده های یک فرم را به آدرس ایمیلی ارسال کرد؟؟؟ چگونه؟؟؟
    نوشته شده توسط 130000 در بخش طراحی وب (Web Design)
    پاسخ: 3
    آخرین پست: سه شنبه 10 دی 1392, 12:33 عصر
  3. سوال: تبدیل کد باینری به عکس !!! ؟؟؟
    نوشته شده توسط ITALIANMAN در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 09 بهمن 1391, 21:07 عصر
  4. پاسخ: 10
    آخرین پست: سه شنبه 25 بهمن 1390, 14:15 عصر

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

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

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