Web Development တွင်အချိန်နှင့်နေ့စွဲနှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်များသည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ နေဝင်ချိန်တွင်နေဝင်ချိန်အချိန်ကိုရရှိသော Laravel တွင် 0 န်ဆောင်မှုကိုသင်အကောင်အထည်ဖော်လိုပါက Day_sunset () function ကို encapsulating လုပ်ခြင်းဖြင့်၎င်းကိုအကောင်အထည်ဖော်နိုင်သည်။ Laravel သည်အစွမ်းထက်သောပမာဏကိုမြှင့်တင်ပေးသည်။ ဒီဆောင်းပါးမှာဒီ function ကိုဘယ်လိုအကောင်အထည်ဖော်ရမယ်ဆိုတာအဆင့်ဆင့်ကိုဘယ်လိုရှင်းပြမလဲ။
Date_sunset () PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ပေးထားသောလတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်, နေ့စွဲနှင့်အခြား parameters တွေကိုအခြေခံသည့်နေရာ၏နေဝင်ချိန်အချိန်ကိုပြန်ပို့နိုင်သည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
date_sunset(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 0, 0);
$ လတ်တီတွဒ် နှင့် $ လောင်ဂျီတွဒ် တို့သည်မြို့၏လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်တို့ဖြစ်သည်။ Date_sunset () သည် ဤအချက်အလက်အပေါ် အခြေခံ. သက်ဆိုင်ရာနေဝင်ချိန်အချိန်ကိုပြန်ပို့ပေးလိမ့်မည်။
Laravel တွင် day_sunsetsetset () function ကို 0 န်ဆောင်မှုအတန်းတစ်ခု ဖန်တီး. 0 န်ဆောင်မှုအတန်းတစ်ခု ဖန်တီး. 0 န်ဆောင်မှုအတန်းတစ်ခု ဖန်တီး. 0 န်ဆောင်မှုကိုရိုးရှင်းအောင်ပြုလုပ်ခြင်းနှင့်ကုဒ်၏ပြန်လည်သုံးသပ်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးမြှင့်ခြင်း။
ပထမ ဦး စွာ Laravel တွင်ကျွန်ုပ်တို့သည်ဤလုပ်ဆောင်မှုကို encapsulate လုပ်ရန်ဝန်ဆောင်မှုအတန်းကိုဖန်တီးရန်လိုအပ်သည်။ ဤ 0 န်ဆောင်မှုအတန်းကို Artisan command မှတဆင့်ထုတ်လုပ်နိုင်သည်။
php artisan make:service SunsetService
ထို့နောက်ကျွန်ုပ်တို့သည် အက်ပလီကေးရှင်း / 0 န်ဆောင်မှုများ / Sunsetservice.php ဖိုင်တွင် Encapsulationulation Logic ကိုအကောင်အထည်ဖော်သည်။
namespace App\Services;
class SunsetService
{
/**
* မြို့၏နေဝင်ချိန်အချိန်ကိုရယူပါ
*
* @param string $cityName မြို့နာမည်
* @return string
*/
public function getSunsetTimeByCity(string $cityName): string
{
// မြို့အမည်ရှိမြို့၏လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်အချက်အလက်များကိုရယူပါ
$coordinates = $this->getCoordinatesByCity($cityName);
if (!$coordinates) {
return 'City Information ကိုမရနိုင်ပါ';
}
// နေဝင်ချိန်အချိန်ကိုရယူပါ
return date_sunset(time(), SUNFUNCS_RET_STRING, $coordinates['latitude'], $coordinates['longitude'], 0, 0);
}
/**
* 根据မြို့နာမည်获取城市的经纬度
*
* @param string $cityName မြို့နာမည်
* @return array|null
*/
private function getCoordinatesByCity(string $cityName)
{
// ပြင်ပခေါ်ဆိုမှု API မြို့၏လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်ဒေတာကိုရယူပါ
$url = "https://api.openweathermap.org/data/2.5/weather?q={$cityName}&appid=your_api_key";
// မြို့၏လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်ဒေတာများကိုရယူပါ
$response = file_get_contents($url);
$data = json_decode($response, true);
// အကယ်. တောင်းဆိုမှုသည်အောင်မြင်ပြီးလတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်အချက်အလက်များရှိသည်,လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်သို့ပြန်သွားပါ
if ($data && isset($data['coord'])) {
return [
'latitude' => $data['coord']['lat'],
'longitude' => $data['coord']['lon']
];
}
return null;
}
}
SunSetservice 0 န်ဆောင်မှုအတန်းတွင်ကျွန်ုပ်တို့သည်အဓိကနည်းလမ်းနှစ်ခုကိုပေးသည်။
GetUnsettInterbycity () - မြို့နာမည်ကိုလက်ခံရရှိပြီးမြို့၏နေဝင်ချိန်အချိန်ကိုပြန်ပို့သည်။
GetCoordinatesBycity () - မြို့၏အမည်ကို အခြေခံ. လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်ကိုရရှိရန်အတွက်ပြင်ပ API (ဥပမာ openweeth api) ကိုသုံးပါ။
GetCoordinatesBycity တွင် () မြို့၏လတ်တီတွဒ်နှင့်လောင်ဂျီတွဒ်အချက်အလက်များရရှိရန် OpenWEVELMAP API ကိုအသုံးပြုသည်။ လက်တွေ့တွင်, သင်၏ API key ကိုသင်အစားထိုးရန်လိုအပ်သည်။
ထို့နောက်ကျွန်ုပ်တို့သည် Sunsetservice 0 န်ဆောင်မှုကိုခေါ်ယူရန်နှင့်ရလဒ်ကိုရှေ့တန်းမှပြန်ပို့ရန်အတွက် Controller လိုအပ်သည်။ ကျွန်ုပ်တို့သည် Controller ကိုထုတ်လုပ်နိုင်သည်။
php artisan make:controller SunsetController
ထို့နောက် 0 န်ဆောင်မှုကို app / http / controllers / controllers / Sunsetcontontroller.php :
namespace App\Http\Controllers;
use App\Services\SunsetService;
use Illuminate\Http\Request;
class SunsetController extends Controller
{
protected $sunsetService;
public function __construct(SunsetService $sunsetService)
{
$this->sunsetService = $sunsetService;
}
/**
* မြို့၏နေဝင်ချိန်အချိန်ကိုစစ်ဆေးပါ
*
* @param Request $request
* @return \Illuminate\Http\Response
*/
public function getSunsetTime(Request $request)
{
$city = $request->get('city', 'Beijing');
$sunsetTime = $this->sunsetService->getSunsetTimeByCity($city);
return response()->json([
'city' => $city,
'sunset_time' => $sunsetTime
]);
}
}
ထို့နောက် လမ်းကြောင်း / web.php တွင် Controller အတွက်လမ်းကြောင်းတစ်ခုထည့်ပါ။
use App\Http\Controllers\SunsetController;
Route::get('/sunset', [SunsetController::class, 'getSunsetTime']);
ဤလမ်းကြောင်းမှတစ်ဆင့်အသုံးပြုသူများသည်နေဝင်ချိန် / နေဝင်ချိန် / နေဝင်နိုင်ပါသလား။
ယခုသင်သည် Day_sunsetsetsetsetset () function ကိုအောင်မြင်စွာ Encapsulated လုပ်ပြီးစီးတီးအားဖြင့်နေဝင်ချိန်အချိန်ကိုမေးမြန်းသော 0 န်ဆောင်မှုတစ်ခုကိုဖန်တီးထားသည်။ အောက်ပါ URL သို့လာရောက်လည်ပတ်ခြင်းအားဖြင့်ဤအင်္ဂါရပ်ကိုသင်စစ်ဆေးနိုင်သည်။
http://m66.net/sunset?city=Beijing
ပြန်လာသော JSON ဒေတာတွင်နေဝင်ချိန်တွင်နေဝင်ချိန်အချိန်များတွင်ပါ 0 င်မည်ဖြစ်သည်။
DAIRE_SUNSETSet () function ကို encapsuating အားဖြင့် Laravel ရှိနေဝင်ချိန်ကာလကို 0 င်ရောက်ခြင်းကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ caching ယန္တရားကိုထည့်သွင်းခြင်း, မတူကွဲပြားသောမေးမြန်းခြင်းများကိုထောက်ပံ့ခြင်းစသည့်အသေးစိတ်အချက်အလက်များအရဤ 0 န်ဆောင်မှုကိုထပ်မံတိုးချဲ့နိုင်သည်။