במידה ואתם כותבים תבניות ו/או תוספים לוורדפרס, בוודאי יצא לכם לראות את ה-Coding Standards של וורדפרס.
לצערי מרבית ממפתחי וורדפרס לא כותבים קוד שמיושר עם ה-Coding Standards של וורדפרס.

מהם Coding Standards?

בארגונים גדולים, לרוב עקב ריבוי המפתחים, החברה כותבת Coding Standards משלה או מאמצת את אחד או יותר מה-Coding Standards של ארגונים אחרים.

Coding Standards הם אוסף של נהלי וחוקי כתיבה שונים אשר מגדירים את צורת הכתיבה ונראות הקוד שנכתב בארגון.
לרוב שימוש בנהלים אלו הם על מנת ליישר את כל המתכנתים לתקן אחד אשר תפקידו לגרום לקוד התוכנה להיות אחיד.

לוגו של טלגרם הצטרפו לערוץ הטלגרם וקבלו עדכון כאשר מאמר חדש מתפרסם!

נהלי כתיבה אלו משפיעים על צורת הכתיבה במגוון רבדים אשר קשורים לקוד שלנו:

  1. ריווחים והזחה – האם להשתמש ברווחים או בטאבים, ובאיזה כמות.
  2. כתיבת שמות משתנים – האם לכתוב בצורה camelCase, snake_case וכד׳.
  3. מיקום סוגריים פותחים וסוגרים – האם הם יהיו באותה השורה של הפקודה או עם ריווח של שורה.
  4. גרשיים או גרש – שימוש במחרוזות עם גרשיים או גרש.
  5. כתיבת בקרת זרימה – צורת כתיבת התנאי בפקודות התנייה ולולאות וכד׳.
  6. ועוד…

יתרונות שימוש ב-Coding Standards

לטעמי שימוש בנהלי הכתיבה בפרוייקט יכול לתרום במספר דרכים:

  1. כאשר מצטרף לפרוייקט מתכנת חדש, יהיה לו יחסית יותר קל להתמצא בקוד כאשר הוא תואם בכל הקבצים.
  2. אחידות קוד יכולה לחסוך זמן רב כאשר נכנסים לקוד קיים מכיוון שסגנון הכתיבה הוא זהה לכן קל מאוד להתמצא.
  3. נהלי כתיבה תורמים בצמצום שגיאות קוד נפוצות כמו השמה של משתנה במקום השוואה וכד׳.
  4. תחזוקה הקוד היא יותר קלה מכיוון שניתן לשנות ולתקן אותו יחסית בקלות כאשר יש אחידות.

כל היתרונות הללו יכולות לחסוך לארגונים כסף וזמן רב, ע״י צמצום שעות עבודה של המתכנתים.

סוגי Coding Standards

ל-PHP קיימים מספר נהלים כתיבה שונים, אשר כל אחד שונה בצורת הכתיבה והחוקים שלו.
להלן רשימה של נהלי הכתיבה הנפוצים כיום:

  • WordPress Coding Standards – נהלי הכתיבה של וורדפרס.
  • PSR-2 – נהלי הכתיבה של PHP-FIG.
  • Zend Coding Standards – נהלי הכתיבה של חברת Zend.

במאמר זה נתמקד בנהלי הכתיבה של וורדפרס, אני אישית מאוד אוהב את הנוהל שלהם ומשתמש בו גם בפרוייקטים שלא קשורים לוורדפרס.

אכיפת Coding Standards עם PHPCS

PHPCS (ר״ת: PHP Code Sniffer) הינו כלי CLI אשר מכיל שתי סקריפטים אשר אחראיים למציאת חריגות מנהלי הכתיבה שהוגדרו בקבצי PHP, CSS ו-JavaScript.

  1. phpcs – סקריפט אשר אחראי לעבור על הקבצים השונים ולמצוא חריגות.
  2. phpcbf – סקריפט אשר אחראי לעבור על הקבצים השונים ולתקן את הקוד שלהם בהתאם לנהלי הכתיבה.

ע״י שימוש בשני הסקריפטים הנ״ל אנו יכולים לכתוב את הקוד שלנו בסגנון שלנו ובסוף להפעיל אכיפה של נהלי הכתיבה הרצויים.

התקנת PHPCS

על מנת להשתמש ב-PHPCS עלינו להתקין אותו בתור התחלה, ההתקנה שלו היא יחסית פשוטה ומהירה.

שימו לב – במדריך זה אני אדגים כיצד להתקין את הכלי על גבי Mac/Linux.
התקנה של הכלי בווינדוס דורשת עוד כמה שלבים קצרים, במידה ותהיה דרישה, אוסיף בהמשך.

על מנת להתקין את PHPCS עלינו לפתוח את הטרמינל ולהריץ את הפקודה הבאה:

curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar

במידה ואתם משתמשים ב-Composer, ניתן להתקין את PHPCS בצורה גלובלית בפשטות:

composer global require "squizlabs/php_codesniffer=*"

על מנת לראות אופציות התקנה נוספות, אני ממליץ לכן לעיין במדריך הרישמי.

התקנת WordPress Coding Standards

בברירת המחדל PHPCS מגיע עם נהלי הכתיבה הבאים – PEAR, Zend, PSR-2, MySource ו-Squize.
מכיוון שוורדפרס לא מגיעה בברירת המחדל, עלינו להוסיף את נהלי הכתיבה של וורדפרס.

בחלון הטרמינל שלנו, נריץ את הפקודה הבאה על מנת להוריד את נהלי הכתיבה של וורדפרס:

 git clone -b master https://github.com/WordPress/WordPress-Coding-Standards.git wpcs

לאחר שהורדנו את נהלי הכתיבה של וורדפרס, עלינו להודיע ל-PHPCS:

phpcs --config-set installed_paths /path/to/wpcs

שימו לב שיש להחליף את /path/to/wpcs בנתיב בו נמצאים נהלים הכתיבה שהורדנו בשלב הקודם.

שימוש ב-PHPCS לבדיקת הקוד

לאחר שהתקנו את PHPCS ואת נהלי הכתיבה של וורדפרס, כעת עלינו לדעת איך להשתמש בהם.
לצורך הדוגמא, נפתח קובץ PHP חדש ונדביק את הקוד הבא בתוכו:

<?php

  $MY_NAME = 'dor';

  function my_AWESOME_function($name )
  {

   echo 'My Name is: ' . $name;

  }

my_AWESOME_function($MY_NAME);

על מנת להריץ את הבדיקה, עלינו לנווט לאיפה שהקובץ נמצא ולהריץ את הפקודה הבאה בטרמינל:

phpcs --standard=WordPress test.php

לאחר סיום הרצת הפקודה, אנו אמורים לראות פלט בסגנון הבא:

צילום מסך של בדיקה האם הקוד שלנו עומד ב-Coding Standards עם PHPCS

בדוגמא כאן ניתן לראות שיש שתי רמות של שורות – שגיאות והתראות.
עבור על שורה ניתן לראות הסבר של מהות השגיאה, לדוגמא, בשורה 3 הוא מתריע על כך ששם המשתנה צריך להיות בסגנון snake_case.

שימוש ב-PHPCBF לתיקון אוטומטי

בכל אחת השורות הנ״ל יש בעמוד השלישית, סוגריים מרובעות ולפעמים גם X.
חיווי זה מציג האם הסקריפט PHPCBF יוכל לתקן בצורה אוטומטית את הקוד שלנו.

על מנת לתקן את הקוד שלנו, נחזור לטרמינל והפעם נריץ את הפקודה הבאה:

phpcbf --standard=WordPress test.php

לאחר הרצת הפקודה אנו נקבל משהו בסגנון הבא:

צילום מסך של תיקון הקוד שלנו עם PHPCBF

מצילום המסך ניתן לראות כי תוקנו 9 שגיאות, אך נשארו 7 שגיאות שיש לטפל בהן בצורה ידנית.

בונוס: שימוש ב-PHPCS עם PHPStorm

במידה ואתם משתמשים ב-PHPStorm, אני ממליץ לכם להפעיל את התמיכה ב-PHPCS, ככה תוך כדי הכתיבה PHPCS יבדוק את הקוד שלכם ויתריע לכם על שגיאות בזמן אמת.

על מנת להגדיר את PHPCS יחד עם PHPStorm נצטרך להכנס להגדרות ולנווט בתפריט הצידי באופן הבא:
Languages & Frameworks -> PHP -> Quality Tools, ותחת Code Sniffer נבחר ב-Local אם אנו משתמשים ב-PHPCS המותקן על המחשב, או ב-Remote אם אנו משתמשים ב-PHPCS שמותקן על מכונה וירטואלית.

לאחר מכן נשאר לנו להפעיל את הצגת השגיאות, לכן במסך ההגדרות ננווט באופן הבא:
Editor -> Inspections, ושם תחת PHP נבחר ב-Quality Tools ונסמן את PHP Code Sniffer Validation.

למידע נוסף ואופציות מורחבות, ניתן להסתכל במדריך הרישמי.

סיכום

שימוש ב-Coding Standards בין אם אתם עובדים בארגון גדול או אפילו לבד, הינו עקרון יסודי שיש להטמיע.
כתיבת קוד ושימוש בנהלי הכתיבה של וורדפרס, יכולה לתרום רבות לסיכויים ולמהירות בה התבנית או התוסף שלכם יאושר ויופיע במאגר הרישמי של וורדפרס.

אז מה איתכם? האם אתם משתמשים בנהלי הכתיבה של וורדפרס או בכלל בנהלי כתיבה אחרים? ספרו לנו בתגובות.

דור צוברי

מתכנת מגיל 13, ומתעסק עם וורדפרס מגיל 18, אוהב לפצח אתגרים ולפתח דברים מורכבים על בסיס וורדפרס. עצמאי מגיל 16, מרצה ובלוגר. בזמן הפנוי שלי אוהב מאוד לקרוא קומיקס של MARVEL.

דור צוברי

תגובות לפוסט

כתיבת תגובה

תגובה אחת

  1. חני

    מאמר מחכים!
    אשמח שתכתוב גם את השלבים להתקנת הכלי בוינדוס
    תודה

    1. מחבר
      דור צוברי

      היי חני,
      אעדכן את המאמר במהלך השבוע 🙂