بابه‌ت: [ڕوونکاری] ستانداردی کۆدنووسین بۆ PHP چۆنە و PSR چیە

PHP بەفەرمی هەرگیز ستانداردێکی بۆ کۆدنوسین نەبووە. هەر کەسێک پەیڕەوی لە  شێوازی کۆدنووسینی تایبەت بە خۆی دەکات . ستانداردی کۆدنووسین هۆکارێکی گرنگە بۆ  بەرزبونەوەی کوالیتی کۆد. شێوازێکی دیاریکراوی کۆدنووسین و ناونانی گۆڕاوەکان و بەشکانی دیکە رێگەمان پێدەدات کۆدێکی کوالێتی بەرز بنووسین کە بۆ خوێندنەوە و کارکردنی بەکۆمەڵ  لەسەری ئاسان بێت.


PHP PSR چیە؟


PSR کورتکراوەی PHP Standard Recommendation,  پەرەی پێدەدرێ لەلایەن PHP Framework Interop Group یاخود کورتر  PHP FIG.  هەوڵدەدەن بۆ بە ستانداردکردنی چەمکەکانی کۆدنووسین بۆ PHP . ئامانج لێی دانانی چەند بنەمایەکی تەکنیکیە بۆ نووسینی کۆدەکان بەشێوازێکی ستاندارد کە  گونجاو بێت بۆ نووسینی کۆدێکی دروست و تاقیکردنەوە . PHP-FIG لەلایەن چەند دامەزرێنەرێکی فرەیموۆرکەکانی PHP دروست کراوە.

هەر PSR ێک لەلایەن ئەندامانی FIG پێشنیاز کراوە و دەنگی لەسەر دراوە بەپێی پرۆتۆکۆلێکی دیاریکراو. نزیکەی 19 PSR هەیە، هەڵبەتە بەشێکیان هێشتا ڕەشنووسن و بەشێیان لە ژێر تاقیکردنەوەدان و بەشێکیان رەتکراونەتەوە. من باسی بەشێک لە گرنگترین و PSR باوەکان دەکەم. دەتوانن لە پێگەی فەرمی خۆیان زانیاری زۆرتر وەربگرن.
https://www.php-fig.org/psr/


١- PSR 1 (Basic Coding Standard)


ئەو PSR سەرنج دەداتە سەر شێوازی ناونانی بەشەکان و پێکهاتەی پەڕگە بەگشتی. سەرنج دەداتە سەر کۆمەڵێک خاڵ کە بریتین لە:
-  کۆدی PHP دەبێت شێوازی نووسنی درێژی تاگی PHP واتە  <?php ?>  یاخود نیشاندانی کورت (Short Echo) <?= ?> بەکاربێت.

- پەڕگەکانی PHP دەبێت بە شێوازی UTF-8 without BOM پاشەکەوت بکرێ.

- جیاکردنەوەی بەشی لۆگیک, گۆڕانکاری لە ڕێکخستنەکانی بۆ php.ini وەک گۆڕینی شێوازی نیشاندانی هەڵەکان، پەوەندی بەستن بە داتابەیس و نیشاندانی زانیاری بۆ پەڕەکان و هتد.. ئەو خاڵە لە زۆربەی فرەیمۆورکەکان بە ڕوونی دەبینرێ.

- شێوازی بانگکردنی Class کان دەبێت لەسەر شێوازی autoloading بێ، سوود لە PSR 4 بە وەردگرین بۆ جێبەجێکردنی ئەو خاڵە. هەڵبەتە PSR 0 پێشتر بەکاردەهات بەڵام ئێستا ڕەتکراوەتەوە بۆیە منیش باسی ناکەم.

- ناونای Class کان دەبێت لەسەر شێوازی StudlyCaps بێت. لە نموونەی خوارەوە ڕوونکراوەتەوە.
شێوازی هەڵە بۆ ناوی Class.

<?php
// ئەو ناونانە نموونەیەکە جا هەر جۆرە ناونانێکی دی بێت.
class User_Details
{
}

شێوازی دروست بۆ ناوی Class

<?php
class UserDetails
{
}

تێبینی: مەبەست لە class ئاماژەیەکە بۆ classes, interfaces, and traits. هەمان خاڵ لەسەر ئەوانیش جێبەجێ دەبێ.

- ناونانی جێگیرەکان واتە (Constant) دەبێ بە شێوازی گەورەبێت (Upper Case) بەهۆی _ لێک جیابکرێنەوە. نموونە

<?php
// شێوازی هەڵەی ناونان
const vesrion = '1.0';
const userName = 'Pshtiwan_95';

// شێوازی دروستی ناونان
const VERSION = '1.0';
const USER_NAME = 'Pshtiwan_95';

- ناونانی میتۆدەکان دەبێ بە شێوازی camleCase بێت. نموونە

<?php

class UserDetails
{
    const USER_NAME = 'Pshtiwan_95';

    // ناونای هەڵە
    public function get_details()
    {
        // do stuff
    }

    // ناونانی دروست لەسەر شێوازی camleCase
    public function getDetails()
    {
        // do stuff
    }
}


بەپێی کات ئەو بابەتە نوێ دەکەمەوە بۆ زیاکردنی باوترین و گرنگترین PSR کانی دیکە.

“Be sick of ur sickness! ”  ― Arash Dibazar-

وه‌ڵام: [ڕوونکاری] ستانداردی کۆدنووسین بۆ PHP چۆنە و PSR چیە

دەستەکانت خۆشبێت برام، بەداخەوە کەم گرنگی پێدەدرێت کە زۆر زەرورە، بژیت بەهیوای نوسینی زیاتر لەسەر ئەو باسە.

وه‌ڵام: [ڕوونکاری] ستانداردی کۆدنووسین بۆ PHP چۆنە و PSR چیە

ده‌ست خۆش هه‌ولده‌ده‌م به‌كاری بێنم

هیچ شتێك ئه‌وه‌نده‌ باش نییه‌ نه‌توانرێت باشتر بكرێت (ئاسۆ نادرى).
Aso Nadri

وه‌ڵام: [ڕوونکاری] ستانداردی کۆدنووسین بۆ PHP چۆنە و PSR چیە

بژین ھاوڕیان دەستی ئێوەش خۆشبێ

“Be sick of ur sickness! ”  ― Arash Dibazar-

وه‌ڵام: [ڕوونکاری] ستانداردی کۆدنووسین بۆ PHP چۆنە و PSR چیە

بابەتيکی باشت هەڵبژاردوە ماندونەبی.
بەستاندارکردنی هەر زمانيکی کۆدنوسین، پاڵپشتیەکی باشە بۆ بەرەو پيشچوونی ئەو زمانە.