- شنبه 2 آبان 1405 ساعت 19:00
- 3.1.9
- کامل شده
- منقضی شده
URI Class بخشهای مسیر درخواست را تحلیل میکند و امکان دسترسی به Segmentها، رشته کامل URI و تبدیل Segmentها به آرایه انجمنی را فراهم میکند. این قابلیت در Routeهای مبتنی بر Segment و زمانی که بخشی از URL شناسه یا فیلتر است، کاربرد دارد.
ساختار و API اصلی
segment(n) مقدار Segment شماره n را میخواند، total_segments() تعداد Segmentها را برمیگرداند، uri_string() مسیر فعلی را میدهد، slash_segment() اسلش را اضافه یا حذف میکند، uri_to_assoc() Segmentها را به زوج کلید و مقدار تبدیل میکند و assoc_to_uri() تبدیل معکوس را انجام میدهد.
نمونه استفاده
$category = $this->uri->segment(3);
$page = $this->uri->segment(4, 1);
$segments = $this->uri->total_segments();
$filters = $this->uri->uri_to_assoc(3);نکته مهم
Segmentهای URL ورودی کاربر محسوب میشوند. پیش از استفاده در Query یا دسترسی به منابع، نوع و محدوده آنها را اعتبارسنجی کنید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای URI
| متد یا مفهوم | کاربرد |
|---|---|
segment($n) | خواندن Segment شماره n. |
rsegment($n) | خواندن Segment از مسیر بازنویسیشده. |
total_segments() | تعداد Segmentها. |
uri_string() | رشته URI فعلی. |
uri_to_assoc() | تبدیل Segmentها به آرایه انجمنی. |
assoc_to_uri() | تبدیل آرایه انجمنی به URI. |
نحوه استفاده و عیبیابی
در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.
در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایلهای موقت را پس از پایان عملیات آزاد کنید.
در بازبینی کد، ترتیب و نتیجه متدهای segment($n)، rsegment($n)، total_segments()، uri_string() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.