ترفند Carbon: تنظیم دستی یا جعل زمان در متد ()now

گاهی اوقات در تست‌نویسی و یا مرحله‌ی تست اپلیکیشن نیاز داریم که زمان فعلی سیستم را Fake (یا جعل) کنیم.

اگر از لاراول برای توسعه‌ی اپلیکیشن خودتون استفاده می‌کنید، حتما میدونید که لاراول به صورت توکار از پکیج Carbon برای هندل کردن تاریخ و زمان استفاده میکنه.

اگر هم از لاراول استفاده نمی‌کنید، می‌تونید پکیج Carbon رو به کمک Composer درون پروژه‌ی خودتون وارد و استفاده کنید.

همونطور که از اسمش مشخصه، متد ()Carbon::now تاریخ و زمان فعلی سیستم رو برمی‌گردونه، اما می‌تونید به کمک متد استاتیک ()Carbon::setTestNow این زمان رو جعل کنید.

به نمونه کد زیر توجه کنید:

در خط ۱ زمان فعلی چاپ شده و در خط ۱ خروجی اون رو مشاهده می‌کنید.

در خط ۴ زمان فعلی سیستم به سه ماه آینده جعل شده و در خط ۷ خروجی اون رو می‌بینید که سه ماه بعد از تاریخ فعلی است.

در خط ۹ زمان فعلی سیستم با تاریخ مشخص 12/31/2013 ساعت 18:20 جعل شده که در خط ۱۲ خروجی اون قابل مشاهده هست.

امیدوارم این مطلب برای شما مفید بوده باشه.