میثم زندی
میثم زندی
خواندن ۲ دقیقه·۴ سال پیش

پی اچ پی تریک | الگوهای برنامه‌نویسی در PHP

زبان برنامه نویسی PHP، زبانی انعطاف پذیر و پویا است که از تکنیک‌های برنامه‌نویسی مختلفی پشتیبانی می‌کند. طی سال‌ها تغییرات زیادی در آن ایجاد شده است که می‌توان به موارد زیر اشاره کرد

  • مدل شی‌گرا در نسخه‌ی 5.0 (سال ۲۰۰۴)
  • توابع بی‌نام (anonymous function) و فضای‌نام (namespace) در نسخه‌ی 5.3 (سال ۲۰۰۹)
  • ویژگی‌‌های خاص (traits) در نسخه‌ی 5.4 (سال ۲۰۱۲)
  • کلاس های بی‌نام (Anonymous Classes) در نسخه 7 سال (۲۰۱۸)
  • کامپایلر JIT یا (just in time) در نسخه ۸ سال (۲۰۲۰)

در این مقاله سعی شده مقداری اندک از قابلیت ها و الگوریتم های مورد استفاده در این زبان بیان شود.

برنامه‌نویسی شی‌گرا

ویژگ‌های بسیاری از مدل برنامه‌نویسی شی‌گرا در PHP پشتیبانی می‌شوند از جمله کلاس‌ها (Classes)، کلاس‌های انتزاعی (Abstract Classes)، رابط‌ها (Interfaces)، وراثت (Inheritance)، سازنده‌ها (Constructors)، کپی‌کردن (Cloning)، استثناها (Exceptions) و بسیاری دیگر.

برنامه‌نویسی تابعی

زبان PHP از توابعی پشتیبانی می‌کند که می‌توانند به متغیرها انتساب داده شوند. چه توسط کاربر تعریف شده باشند چه داخلی باشند، می‌توانند توسط یک متغیر فراخوانی شوند. توابع می‌توانند به عنوان یک آرگومان به سایر توابع فرستاده شوند (قابلیتی که به آن توابع مرتبه-بالا گفته می‌شود) و هر تابعی می‌تواند توابعی دیگری را به عنوان خروجی بازگرداند.

بازگشت (Recursion)، قابلیتی که به یک تابع اجازه می‌دهد خود را فراخوانی کند، توسط زبان پشتیبانی می‌شود اما بیشتر کد PHP روی تکرار (Iteration) تاکید دارد.

توابع بی‌نام جدید (که از Closure پشتیبانی می‌کنند) از PHP 5.3 به بعد (۲۰۰۹) وجود دارند.

نسخه‌ی 5.4 از PHP قابلیت اتصال Closure به قلمرو شی (Object’s Scope) را اضافه کرده و همچنین پشتیبانی از فراخوانی‌هایی با توابع بی‌نام را بهبود بخشیده است.

قابلیت ساخت کلاس بدون نام (Programmer Declared Name) یا کلاس ناشناخته (که در نسخه ۷ ارايه شد) با استفاده از کلمه کلیدی new که می توان آن را در یک متغیر قرار داد. عملکرد آن متغیر نسبت به یک متغیر دیگر که از یک کلاس با نام new شده است تفاوتی ندارد.

انواع Union (که در نسخه ۸ ارايه شد) با توجه به ماهیت دینامیک انواع در زبان PHP، موارد زیادی وجود دارند که انواع Union می‌توانند مفید واقع شوند. انواع Union به مجموعه‌هایی از دو یا چند نوع گفته می‌شود که مشخص شده فقط یکی از این دو نوع می‌تواند مورد استفاده قرار گیرد.
درباره‌ی فراخوانی‌ها در برنامه نویسی تابعی بیشتر بدانید

برنامه‌نویسی Meta

از طریق مکانیسم‌هایی مانند Reflection API و Magic Meghods است که PHP از این سبک برنامه‌نویسی پشتیبانی می‌کند. متدهای مختلفی مانند ()get__ و ()set__ و ()clone__ و ()toString__ و ()invoke__ وجود دارند که به توسعه‌دهندگان اجازه می‌دهند رفتار داخلی یک کلاس را تغییر دهند. توسعه‌دهندگان Ruby اغلب می‌گویند PHP از نبود ‘method_missing’ رنج می‌برد در حالی که این عملکرد توسط ()call__ و ()callStatic__ قابل دسترسی است.

phpالگوریتم
Software Engineer | Technical Lead | Engineering Manager
شاید از این پست‌ها خوشتان بیاید