15
تشکر

استاندارد PSR-1 در PHP

PHP – پی اچ پی

PHP – پی اچ پی

حالا که با استاندارهای PSR در PHP آشنا هستیم و اولین استاندارد آن، یعنی PSR-0 را بررسی کردیم، به بررسی دومین استاندارد، یعنی PSR-1 میرویم. تمرکز این استاندارد بر روی نحوه کد نویسی با زبان PHP است.

در ادامه مطلب همراه ما باشید…

فایل‌ها

تگ php

برای استفاده از تگ باز و بسته شدن PHP یا باید از نوع طولانی آن یعنی <? php?> یا از نوع کوتاه آن یعنی <? =?> استفاده کرد و نباید از روش‌های دیگر استفاده شود.

انکودینگ کاراکتر (Character Encoding)

اندکودینگ کاراکتر فایل باید UTF-8 بدون BOM باشد.

کارهای جانبی (Side Effects)

درون یک فایل PHP نباید کارهای جانبی با کارهای اصلی با هم وجود داشته باشند، بلکه باید در فایل‌های جداگانه قرار بگیرند.

کارهای جداگانه میتواند شامل استفاده از require یا include، اتصال به سرویس خارجی، تغییر تنظیمات ini، مدیریت خطاها، تغییر متغیرهای استاتیک یا سراسری، نوشتن یا خواندن از فایل و کارهایی مشابه آن.

اما کارهای اصلی میتواند شامل کلاس ها، توابع، ثابت ها و دستورات دیگر باشند.

برای مثال کد زیر در استاندارد PSR-1 قابل قبول نیست:

<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);

// side effect: loads a file
include "file.php";

// side effect: generates output
echo "<html>\n";

// declaration
function foo()
{
    // function body
}

اما کدهای زیر طبق استاندارد PSR-1 است:


نام کلاس‌ها و فضای نام (namespace)

نام کلاس‌ها و فضای نام باید مطابق استاندارد PSR-0 یا PSR-4 باشند. به این معنی که هر کلاس باید درون یک فایل جداگانه قرار بگیرد و هر کلاس باید دارای یک namespace سطح بالا باشد. همینطور نام کلاس‌ها باید به صورت StudlyCaps باشد، به این معنی که کلمات به هم چسبیده و حروف اول تمام کلمات بزرگ باشد.

اما از آنجا که namespaceها از PHP 5.3 به بعد پشتیبانی می‌شوند، در PHP 5.3 به بالا میتوانید از مثال زیر استفاده کنید:


اما از PHP 5.3 به پایین باید به صورت زیر عمل کنید:


ثابت‌ها، خواص و متدهای کلاس

ثابت‌ها (Constants)

تمام حروف ثابت‌ها باید به صورت حروف بزرگ نوشته شوند و کلمات با استفاده از _ (underscore) از یکدیگر جدا شوند.


خواص (Properties)

استاندارد PSR-1 هیچ توضیحی در مورد انتخاب نام خواص کلاس نداده است. اما توصیه می‌شود نام خواص به صورت camelCase باشد.

متدها (Methods)

نام تمام متدها باید به صورت camelCase باشد.

این مطلب از سری مطالب، استانداردهای PSR است
  • راجب htaccess هم مطلب بزارید. تقریبا مطالبش رو میشه توی منابع فارسی پیدا کرد ولی هیچکدوم درست کار نمیکنه و همه باطل شده هستن.
    راجب nodejs هم اول بگید چیه چه کارا میشه باهاش کرد بعد اموزشش بدید.
    مردم نمیدونن چی هست که برن یاد بگیرن… 😐

  • آروین می‌گه:

    ببخشید که دوباره نظر اضافه میدم ولی سایتیو که گفتم با www باز نکنید؛ اینو باز کنید:
    gmchipsdesign.com

    نمیدونم چرا وقتی با www میرم، فونتاشو درست نمیاره؟!

  • EleRam می‌گه:

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

  • آروین می‌گه:

    سلام.
    مطلب عالی بود خیلی ممنون.

    راستی به سایت گروه ما هم سر بزنید و نظرم بدید.
    http://www.gmchipsdesign.com

    البته تازه راش انداختم و خیلی کامل نیست اما کاملا رسپانسیوه و اینکه همه ی فرماشم با آژاکس کار میکنه. از کد کپچایی هم داده بودید همونطور که قبلا بهتون گفته بودم تو چند تا پروژه استفاده کردم و تو اینم استفاده کردم.

  • یعنی کی می‌تونه باشه ؟‌:دی می‌گه:

    مثل همیشه عالی 😉

  • akbarjimi می‌گه:

    دوست عزیز شاید این نوشته ها برای شما که تکراری باشه ولی برای من و اکثر برنامه نویس های تازه کار تازگی داره و نیاز داریم اینا رو بدونیم.
    از کار خوب آقای شفیعی هم نباید گذشت و ممنونش هستم واقعا.

  • علی می‌گه:

    از این نظر که مطالب تکراری و چیز هایی که همه جا پیدا میشوند رو دوباره منتشر نمی کنید و چیز هایی کاربردی تر و تازه تر رو بیان می کنید (هر چند که این استاندارد ها تازه نیستند ولی کمتر توی نوشته های فارسی دیده بودمش)، عالی هستید!


  • نظرات این مطلب بسته است.