معمولا سبک کدنویسی که در فریمورک و extension ها استفاده میشه دارای اصول، قواعد و قانون های خودش هست. پس اگر تصمیم دارید چیزی به اونها اضافه کنید باید این قواعد رو در نظر بگیرید حتی در غیر این صورت هم رعایت این موارد خالی از لطف نیست و توصیه میکنم این کارُ انجام بدین. در حالی که میتونید راحت باشید، شما مجبور به رعایت این سبک در application خودتون نیستید...
به طور کلی ما در این مطلب از سبک PSR-2 استفاده میکنیم و هر چیزی که در این سبک وجود داره اینجا هم هست.
- در فایل ها باید از برچسب های php?> و =?> استفاده شود.
- در پایان هر فایل باید یک خط جدید(newline) داشته باشید.
- فایل encoding برای کد های php باید UTF-8 without BOM باشد.
- به جای tab از 4 فضای خالی(space) استفاده کنید.
- نام کلاس ها باید به صورت StudlyCaps تعریف شوند.
- ثابت های داخل کلاس تماما باید با حروف بزرگ و گاهی با جداکننده "_" تعریف شوند.
- نام متد ها و پراپرتی ها باید به صورت camelCase تعریف شوند.
- پراپرتی های خصوصی(private) باید با "_" شروع شوند.
- همیشه از elseif جای else if استفاده کنید.
- در فایل ها باید از برچسب های php?> و =?> استفاده کرد نه از ?> .
- در انتهای فایل های php نباید از تگ <? استفاده کنید.
- در انتهای هر خط نباید space وجود داشته باشد
- پسوند فایل هایی که شامل کد php هستند باید php. باشد.
-فایل encoding برای کد های php باید UTF-8 without BOM باشد.
- نام کلاس ها باید به صورت CamelCase تعریف شوند.
- آکولاد باز باید در خط بعدی، زیر نام کلاس نوشته شود.
- تمام کلاس ها باید بلاک مستندات مطابق استاندارد PHPDoc داشته باشند.
- برای تمام کد های داخل کلاس باید با 4 space فاصله ایجاد کنید.
- فقط یک کلاس داخل هر فایل php باید موجود باشد.
- تمام کلاس ها باید namespaced داشته باشند.
- نام کلاس باید معال نام فایل و namespace باید مطابق مسیر آن باشد.
/** * Documentation */ class MyClass extends \yii\Object implements MyInterface { // code }
- ثابت های داخل کلاس تماما باید با حروف بزرگ و گاهی با جداکننده "_" تعریف شوند.
<?php class Foo { const VERSION = '1.0'; const DATE_APPROVED = '2012-06-01'; }
- از کلید واژه های public، protected و private استفاده کنید.
- پراپرتی های public و protected باید در بالای کلاس و قبل از متد ها تعریف شوند. private هم همینطور اما ممکن هست کاهی قبل از متدی که با آن مرتبط هست آورده شود.
- ترتیب تعریف پراپرتی ها باید به صورت اول public، دوم protected و سپس private باشد! هیچ قانون سختی برای رعایت این مورد نیست...
- برای خوانایی بهتر میتونید از خط خالی بین گروه های public، protected و private استفاده کنید.
- متغییر های private باید مثل varName_$ باشند.
- اعضای عمومی داخل کلاس باید به صورت camelCase تعریف شوند.(حرف اول کوچک، با CamelCase فرق میکنه).
- بهتره از نام هایی مثل i$ و j$ استفاده نکنید.
<?php class Foo { public $publicProp1; public $publicProp2; protected $protectedProp; private $_privateProp; public function someMethod() { // ... } }
- توابع و متد ها باید camelCase باشند.
- نام باید هدف رو نشون بده.
- از کلید واژه های public، protected و private استفاده کنید.
- آکولاد باز باید در خط بعدی یعنی زیر نام متد قرار بگیره.
/** * Documentation */ class Foo{ /** * Documentation */ public function bar() { // code return $value; } }