TGViewer
| کانال توسعه‌دهندگان PHP | | کانال توسعه‌دهندگان PHP | @developixphp · 1.68K subscribers
Post #47 966
‏PHPDoc یک ابزار مستندسازی برای زبان برنامه‌نویسی PHP است که از کامنت‌ها برای تولید مستندات فنی استفاده می‌کند. این ابزار به توسعه‌دهندگان امکان می‌دهد تا کدهای خود را به صورت خودکار و با استفاده از تگ‌ها و فرمت‌های خاص، مستندسازی کنند.

کامنت‌های PHPDoc با دو ستاره (/) آغاز می‌شوند و می‌توانند شامل تگ‌های مختلفی باشند که اطلاعات مهمی را در مورد توابع، کلاس‌ها، ویژگی‌ها و غیره ارائه می‌دهند. درمورد این تگ ها به طور کامل توضیح داده می شود.

نمونه کد:

/**
* Calculate the sum of two numbers.
*
* @param int $a first number
* @param int $b second number
* @return int The sum of two numbers
*/
function add($a, $b) {
return $a + $b;
}


کد بالا پارامتر ها و خروجی تابع را توضیح می دهد.

از آنجایی که PHPDoc ها کامنت هستند توسط PHP تفسیر نمی شوند به همین دلیل در زمان اجرا در دسترس نیستند و برای خواندن آنها باید از ابزار هایی مانند PHPDocumentor استفاده کنید، ولی IDE ها توان تفسیر آنها را دارا می باشند و اگر کتابخانه ای توسعه می دهید به استفاده کننده گان کمک می کنند.

بررسی تگ ها:
تگ های PHPDoc با @ شرع می شوند.

@api
نشان دهنده آن دسته از عناصر API است که عمومی تلقی می‌شوند.
class UserService
{
/**
* @api
*/
public function getUser() {}

/**
* This method is "package scope", not public-API.
*/
public function callMefromAnotherClass() {}
}


در مثال بالا متد GetUser به عنوان متد عمومی درون api مشخص شده در صورتی که متد دوم مربوط به api عمومی نیست.
———
@author [name] [<email address>]
مشخص کننده نویسنده کد.
/**
* @author John Doe <john@gmail.com>
*/


———
@category [description]
دسته‌بندی کلی کلاس یا توابع را مشخص می‌کند.
/**
* @category MyCategory
*/


———
@copyright [description]
متن حق کپی‌رایت را برای کد مشخص می‌کند.
/**
* @copyright Copyright 1994-2024 Acme Corporation
*/


———
@deprecated [<Semantic Version>] [<description>]
این تگ نشان می‌دهد که یک تابع یا کلاس دیگر استفاده نمی‌شود و ممکن است در نسخه‌های آینده حذف شود.
/**
* @deprecated 2.0 Use newFunction() instead.
*/
function oldFunction() {
}


———
@example [location] [<start-line> [<number-of-lines>] ] [<description>]
یک فایل نمونه که نحوه استفاده از کد را نشان می‌دهد.
/**
* @example /path/to/example.php
*/


———
@filesource
نشان می‌دهد که متن کامل فایل باید در مستندات نمایش داده شود.
<?php
/**
* @filesource
*/


———
@global [Type] [name]
@global [Type] [description]
توضیح می‌دهد که یک تابع به یک متغیر جهانی دسترسی دارد.
/**
* @global int $GLOBAL_VAR Description of global variable.
*/
function useGlobal() {
global $GLOBAL_VAR;
}


———
@ignore [<description>]
باعث می‌شود که ابزار مستندسازی یک عنصر خاص را نادیده بگیرد.
/**
* @ignore
*/
define("RUNTIME_OS","Windows");


———
@internal [description]
اطلاعاتی که فقط برای توسعه‌دهندگان داخلی استفاده می‌شود.
/**
* @internal This is only for advanced developers.
*/
function count() {}


———
@license [<url>] [name]
نوع لایسنس کد را مشخص می‌کند.
/**
* @license GPL
* OR
* @license https://opensource.org/licenses/gpl-license.php GNU Public License
*/


———
@link [URI] [<description>]
لینک به منبع مرتبط.
/**
* @link https://example.com More information here
*/


———
@method [[static] return type] [name]([[type] [parameter]<, ...>]) [<description>]
توصیف متد مجازی در کلاس، مفید برای کلاس‌هایی با متدهایی که با مجیک متد (__call) تعریف شده‌اند.
/**
* @method int magicMethod(string $param) Description
*/
class MyClass {}


———
@package [level 1]\\[level 2]\\[etc.]
تعریف بسته‌ای که کلاس یا تابع مرتبط با آن است.
/**
* @package Core
*/


———
@param [<Type>] [name] [<description>]
توصیف پارامترهای یک تابع.
/**
* @param int $a First number
* @param int $b Second number
*/
function add($a, $b) {
return $a + $b;
}


ادامه تگ ها در پست بعدی توضیح داده می شود.

👤 AmirHossein

💎 Channel: @DevelopixPHP
  • ❤ 5
  • 👍 2
  • 🔥 1
More from @developixphp
  1. Sep 26, 2026این کد موقع اجرا چه خروجی‌ای می‌ده و مشکلش کجاست؟ 🔖 #PHP #پی_اچ_پی 👤 Developix 💎 Channe…
  2. Sep 25, 2026🔥 پکیج: قراردادهای ترجمه سیمفونی اگر کد PHP را برای چندزبانگی می‌نویسید، بهتر است منطق بر…
  3. Sep 16, 2026🚀 &rlm;LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  4. Sep 11, 2026ارسال ایمیل تأیید ثبت‌نام، بازیابی رمز عبور یا نوتیفیکیشن سفارش، تقریباً توی هر پروژه‌ PHP…
  5. Sep 10, 2026برنامه نویسی سوکت در PHP بخش اول عبارت دیگر در ارتباط های غیر سوکت برای ارسال یک پالس از س…
  6. Aug 31, 2026🔥 پکیج: استاندارد PSR-11 برای Container استاندارد PSR-11 فقط یه interface مشترک برای Cont…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →