استاندارد نام گذاری افزونه های وردپرس
مهندس محسن حسن پور
این پست با مسیر متخصص وردپرس مرتبط است. مشاهده مسیر (Roadmap)
یک برنامه نویس وردپرس برای آنکه اثری در سطح جهانی ارائه دهد باید استاندارد های لازم و بین المللی را رعایت کند. برای فروش یا انتشار یک افزونه وردپرسی در سایت های معتبر خارجی، نیازمند رعایت یک استاندارد دقیق از ابتدا تا انتهای کار خود هستیم. بنابراین وجود یک استاندارد برای نام گذاری افزونه و همچنین پیشوند گذاری توابع، کلاس ها، ثابت ها و متغیر ها و… برای یک برنامه نویس حیاتی است. قواعد نام گذاری مختلفی برای این کار وجود دارد. برای نگارش این مقاله از وب سایت رسمی وردپرس استفاده کردیم. امیدواریم این مقاله مورد توجه شما قرار گیرد.
مقدمه
وردپرس یک CMS بسیار قدرتمند و مشهور در کشور است. در تمام کشور های جهان این سیستم مدیریت محتوا جزو محبوب ترین cms ها به شمار می رود. شاید جالب باشد که بدانید حدود 40 درصد از سایت های جهان با CMS وردپرس نوشته می شوند. وجود این محبوبیت باعث شده است فیلد های شغلی جدیدی بوجود آید. یکی از این فیلد ها که در ایران هم بسیار پرطرفدار و البته پر درآمد است، افزونه نویسی وردپرس می باشد. بوجود آمدن این فیلد در کنار اشتغالزایی باعث بروز مشکلاتی هم شده است.
این مشکلات به دلیل سبک و سیاق مختلف برای برنامه نویسی PHP و البته فرهنگ و تسلط این developer ها بوجود آمده است. در ادامه به لزوم استفاده از استاندارد برای کدنویسی و نام گذاری افزونه ها می پردازیم سپس لیستی کامل از استاندارد هایی که یک برنامه نویس وردپرس برای نام گذاری افزونه ها باید آن را رعایت کند برایتان آماده کردیم.
مشکلات ناشی از عدم رعایت استاندارد های کد نویسی و نام گذاری افزونه ها
بیاید ابتدا ببینیم چرا باید از این استاندارد استفاده کنیم؟ کوتاه ترین جواب: “تداخل”. تداخل واژه ای آشنا برای همه ی کسانی که با وردپرس کار می کنند بدل شده است. تداخل می توانید ناشی از نام گذاری پارامتر ها، فایل ها باشد. همچنین کد نویسی غیر استاندارد هم می تواند تداخل ایجاد کند. حتما برایتان پیش آمده که افزونه ای را نصب می کنید و می بینید که سایتتان به هم ریخته است! یا صفحه ی سایتتان به صورت کامل سفید رنگ شده است! به احتمال زیاد دلیل این اتفاق تداخل یک یا چند افزونه با یکدیگر و یا تداخل قالب یا افزونه با با کد های هسته وردپرس و یا تداخل افزونه و قالب شما می باشد. پس این جا بود که زنگ خطر روشن شد.
وجود تداخل در افزونه ها چه مشکلی ایجاد می کند؟
وجود تداخل افزونه ها با قالب و یا یدیگر منجر به خراب شدن سایت مصرف کننده ی محصول شما می شود. محصول شما می تواند به شکل رایگان یا پولی به دست مصرف کننده رسیده باشد. در آن صورت چه می شود؟ ساده است! شما مجبورید که خدمات پشتیبانی ارائه بدهید. این یعنی هدر رفت انرژی و هزینه برای شما و البته نارضایتی مصرف کنندگان. بطور کلی اگر بخواهم گوشه ای از مضرات این موضوع را برایتان بگوییم:
- تلف شدن وقت طراح قالب یا افزونه ( چون در بسیاری از سایت های ارائه دهنده افزونه، ارائه خدمات پشتیبانی الزامیست)
- تضعیف و خراب شدن نام برند شما
- متقبل شدن هزینه اضافی مشتریانتان ( ممکن است مجبور شوند برای حل این موضوع از برنامه نویسان دیگر کمک بگیرند)
- ضرر مالی مشتریانتان ( بدلیل خراب شدن سایت و داون شدن آن )
- احتمال پس دادن محصول شما و عودت وجه
- احتمال قطع همکاری مارکت های بزرگ برای ارائه محصولاتتان در سایت آن ها
- تایید نشدن محصولاتتان در مخزن وردپرس و یا مارکت پلیس های وردپرس
تنها راه مقابله با این موارد رعایت استاندارد برنامه نویسی افزونه ها و استاندارد نام گذاری افزونه ها است.
استاندارد نام گذاری افزونه ها
این مبحث را دو قسمت تقسیم میکنیم.
- نام گذاری فایل ها و فولدر های افزونه
- نام گذاری پارامتر ها، متغیر ها، توابع و کلاس ها
استاندارد نام گذاری فایل ها و فولدر ها در افزونه ها
1) اولین کار برای طراحی و برنامه نویسی یک افزونه نام گذاری آن است. توصیه ی می کنیم یک نام منحصر بفرد برای آن انتخاب کنید. برای بررسی این وضوع کافیست به مخزن وردپرس مراجعه کنید و نام انتخابی را با نام های موجود مقایسه کنید. اگر قصد دارید افزونه خود را به فروش برسانید علاوه بر مخزن باید آن سایت را هم جستجو کنید تا نام انتخابی شما منحصر بفرد باشد.
2) سعی کنید نام افزونه انتخابی شما مرتبط با کاری باشد که افزونه انجام می دهد. برای مثال افزونه ی محبوب یواست سئو که تلفیقی از نام برند و کاری است که این افزونه انجام می دهد.
3) نام گذاری پوشه اصلی افزونه باید منحصر بفرد باشد. چرا که در صورت عدم رعایت این مورد 2 پوشه با یک نام در پوشه wp-content قرار می گیرد. این مورد شدنی نیست و نمیتوان دو پوشه با یک نام در یک دایرکتوری قرار داد. توصیه می کنیم از پیشوند برای این نام استفاده کنید. اگر برای مصرف خودتان افزونه می نویسید نام خود یا نام سایت را بعنوان پیشوند در نظر بگیرید:
- mohsen-weather-plugin
- tutsxen-seo
اگر برای فروش یا عرضه ی قالب در مارکت ها یا مخزن وردپرس افزونه می نویسید پیشنهاد می کنیم از نام برند خود برای پیشوند استفاده کنید:
- karina-them-plugin
نیازی به نام گذاری همه ی فایل های افزونه با پیشوند نیست (اگرچه برخی از برنامه نویسان افزونه دوست دارند این کار را انجام دهند)
4) توصیه اکید می کنیم همه ی حروف نام گذاری فایل ها و فولدر ها با حروف کوچک باشد.
این مورد در اکثر مارکت های ورپرس اجباریست!
5) برای جداسازی نام فایل هایی که دارای چند کلمه هستند بجای آندرلاین یا همان زیرخط باید از خط تیره – استفاده شود. به عنوان مثال نام فایل اصلی افزونه شما می تواند شبیه karina-them-plugin.php باشد.
6) توصیه ی اکید می شود نام فایل اصلی افزونه و فولدر افزونه یکسان باشد. برای مثال اگه نام پوشه ی افزونه ی شما tutsxen-theme-plugin است، باید نام فایل اصلی این افزونه tutsxen-theme-plugin.php باشد.
7) نام افزونه باید در هدر فایل اصلی افزونه قرار گیرد. بصورت زیر:
/** * Plugin Name: My Basics Plugin * Plugin URI: https://example.com/plugins/the-basics/ * Description: Handle the basics with this plugin. * Version: 1.10.3 * Requires at least: 5.2 * Requires PHP: 7.2 * Author: John Smith * Author URI: https://author.example.com/ * License: GPL v2 or later * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Update URI: https://example.com/my-plugin/ * Text Domain: my-basics-plugin * Domain Path: /languages */
از بین موارد بالا تنها plugin name اجباری است و بقیه موارد اختیاری است.
8) بهتر است فوولدر ها و فایل های افزونه به صورت زیر مرتب گردند:
/plugin-name plugin-name.php uninstall.php /languages /includes /admin /js /css /images /public /js /css /images
استاندارد نام گذاری ثابت ها، متغیر ها، توابع و کلاس ها
1- همه توابع موجود در افزونه شما باید نامهای منحصربهفردی داشته باشند که با توابع موجود در هسته وردپرس، سایر افزونهها و تمها متفاوت باشد. به همین دلیل، ایده خوبی است که از یک پیشوند نام تابع منحصر به فرد در تمام توابع پلاگین خود استفاده کنید.
یک پیشنهاد جالب این است که توابع پلاگین خود را در یک کلاس تعریف کنید. ( و آن کلاس یک نام منحصر به فرد داشته باشد.)
2) توصیه اکید می کنیم همه ی حروف نام گذاری متغیر ها، پارامتر ها، کلاس ها و توابع با حروف کوچک باشد.
این مورد در اکثر مارکت های ورپرس اجباریست!
3) تمام متغیرها، توابع و کلاس ها باید با یک شناسه منحصر به فرد پیشوند گذاری شوند. پیشوندها از بازنویسی سایر افزونه ها و فراخوانی تصادفی توابع و کلاس های شما جلوگیری می کنند. همچنین برعکس.
4) جهت جلوگیری از تداخل، بهتر است قبل از تعریف کلاس ها، توابع، ثابت ها و پارامتر ها از توابع برای چک کردن این موضوع که قبلا تعریف شده اند یا خیر استفاده شود:
- برای متغیر ها (variable) از تابع isset()
- بررسی وجود توابع (function) از تابع function_exists()
- برای کلاس ها از تابع class_exists()
- و ثابت ها (constants) از تابع defined()
مثال :
//Create a function called "wporg_init" if it doesn't already exist if ( !function_exists( 'wporg_init' ) ) { function wporg_init() { register_setting( 'wporg_settings', 'wporg_option_foo' ); } } //Create a function called "wporg_get_foo" if it doesn't already exist if ( !function_exists( 'wporg_get_foo' ) ) { function wporg_get_foo() { return get_option( 'wporg_option_foo' ); } }
شما چه استاندارد های دیگری را برای نامگذاری افزونه ها، متغیر ها، توابع و کلاس ها سراغ دارید؟ برای ما کامنت کنید. همچنین سوالات و ابهامات خود را از طریق بخش کامنت ها ارسال کنید. همکاران ما در تاتژن در سریع ترین زمان ممکن پاسخگوی شما خواهند بود.
منابع: