Category: php

  • psalm

    سام رو نصب کنید و راحت بخوابید این نوشته‌ای است که در توضیح اولیه این کتابخانه نوشته شده است. https://psalm.dev It’s easy to make great things in PHP, but bugs can creep in just as easily. Psalm is a free & open-source static analysis tool that helps you identify problems in your code, so you…

  • ماکرو ها در لاراول macro in laravel

    ماکرو در واقع امکانی هست که متوانیم رفتار یک کلاس را در زمان اجرا تغییر دهیم . با اضافه کردن یک متد به کلاس. یه مثال : در فایل AppServiceProvider در متد بوت کد زیر را مینویسیم. public function boot() { Response::macro('hi', function ($name) { return 'Hi ' . $name ; }); } و الان…

  • رفلکشن در پی اچ پی Reflection in PHP بخش دوم

    در قسمت قبل دیدیم که با رفلکشن ReflectionFunction می‌توانیم اجزای یک تابع را بررسی کنیم و پارامتر‌های تابع هم از نوع رفلکشن ReflectionParameter هستند و میتوان اجزای آنها را هم بررسی کرد. در این بخش یک کلاس تعریف میکنیم و آن را بررسی میکنیم. ابتدا یک کلاس به نام Person را تعریف میکنیم <?php /**…

  • رفلکشن در پی اچ پی Reflection in PHP

    رفلکشن قابلیتی در یک برنامه کامپیوتر است که میتوان ساختار و رفتار خود برنامه در زمان اجرا را بررسی کرد و تغییر داد. طبق تعریف php.net : رفلکشن به ما قابلیت مهندسی معکوس کلاس ها، اینترفیس ها، توابع، متد ها و اکستنشن ها را میدهد به این معنی که بدانیم چه قابلیت هایی دارد. بعلاوه…

  • تابع serialize & unserilaze

    تابع serialaze یک مقدار php که کلاس هم می تواند باشد را به صورت رشته و قابلیت ذخیره‌سازی در پایگاه داده تبدیل میکند و تابع unserilaze هم مقدار serilize شده را به آبجکت یا مقدار قبلی باز میگرداند . در کد زیر یک کلاس را ذخیره میکنیم و بازمیگردانیم. <?php class Test { public $msg;…

  • late-static-bindings چیست ؟

    کلمه کلیدی self روال طبیعی ارث بری پیش نمی برد و همیشه self به کلاسی که در آن قرار دارد اشاره می کند. و این یعنی اینکه اگر در کلاس پدر با استفاده از self متد استاتیکی را صدا زده باشید و در کلاس فرزند بخواهید از متد فرزند استفاده کنید، نمی توانید و همان…

  • autoloading in php اتولودینگ در php

    پ ن : این مطلب برای یاداشت کردن آموخته های خودم در مورد Autoloading است و ساختار آموزشی ندارد. اوتولودینگ به مبحث لود شدن خودکار فایل ها می پردازد به این معنا که هنگامی که فایل ها زیاد باشند و بخواهیم از آنها استفاده کنیم قبل از هر بار استفاده باید آنها را require کنیم…