GyaanSetu PHP

PHP، Laravel و WordPress.

28 articlesDeep, practical knowledge

لاراول ۱۳ ویژگی‌های $fillable، $table و $casts را با Attributeهای بومی PHP جایگزین می‌کند

لاراول ۱۳ ویژگی‌های (Attributes) داخلی PHP را برای پیکربندی مدل‌ها معرفی می‌کند که به شما اجازه می‌دهد بدون ایجاد اختلال در کدهای موجود، ویژگی‌های سنتی $table، $fillable و $casts را با Annotationهای تایپ‌شده و مبتنی بر Reflection جایگزین کنید.

PHP · 4 min read

مسدود کردن wp-cron.php در سطح سرور برای صرفه‌جویی در PHP Workers و جلوگیری از افزایش ناگهانی مصرف CPU

تنظیم DISABLE_WP_CRON = true تنها مانع از ارسال درخواست loopback توسط خود وردپرس می‌شود؛ اما آدرس URL مربوط به wp-cron.php همچنان در دسترس باقی می‌ماند و می‌تواند مورد حملات مکرر قرار گیرد که منجر به اتمام PHP workers و ایجاد اختلال در سرویس (DoS) در هاست‌های اشتراکی می‌شود.

PHP · 4 min read

وصله امنیتی InvoiceShelf حفره‌ای با امتیاز ۸.۷ را که به هر مالک اجازه می‌داد سایر مستاجران را کنترل کند، برطرف کرد

این آسیب‌پذیری ناشی از اتصال مدل-مسیر (route-model binding) در لاراول و نبود بررسی محدوده مستاجر (tenant-scope check) بود که به یک مالک اجازه می‌داد هر شناسه کاربری را درخواست و اطلاعات کاربری را بازنویسی کند؛ این امر در عمل باعث انتقال حساب قربانی به شرکت مهاجم می‌شد.

PHP · 2 min read

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

جایگزین کردن ۳۰۰ فراخوانی مخزن (repository) برای هر محصول با یک کوئری کالکشن، تعداد کوئری‌ها را به شدت کاهش داد، اما فیلتر موجودی داخلی مگنتو تمام SKUهای با موجودی صفر را حذف کرد و باعث شد خریداران با کاتالوگی ناقص روبرو شوند.

PHP · 3 min read

TrendVidStream پس از وقوع هک، JWTهای ۳۰ روزه را با توکن‌های رفرش یک‌بارمصرف جایگزین کرد

یک SDK همکار، یک JWT ۳۰ روزه را به صورت متن ساده (plain text) ذخیره کرده بود که به مهاجم اجازه داد از خارج از کشور از آن استفاده مجدد کند. این رخنه امنیتی، TrendVidStream را مجبور کرد تا JWTهای طولانی‌مدت را با توکن‌های دسترسی ۱۵ دقیقه‌ای و توکن‌های رفرش یک‌بارمصرف جایگزین کند که در صورت استفاده مجدد، بلافاصله باطل می‌شوند.

PHP · 3 min read

اتلاف ساعت‌ها وقت توسعه‌دهندگان به دلیل صفحه تایید ایمیل وردپرس – و راه حلی در یک خط

از نسخه ۵.۳ وردپرس، صفحه تایید ایمیل مدیر هر چند ماه یک‌بار ظاهر می‌شود و باعث می‌شود اجرای خودکار و بدون نظارت Playwright منتظر دکمه‌ای بماند که هرگز نمایش داده نمی‌شود. با اضافه کردن یک بررسی سریع URL و کلیک بر روی گزینه «I’ll wait»، قطعیت در اتوماسیون دوباره برقرار می‌شود.

PHP · 3 min read

قانون فاکتور الکترونیکی سال ۲۰۲۶ کرواسی، برنامه‌های PHP را به بازنویسی ۶۲ قانون اعتبارسنجی وادار می‌کند

از ۱ ژانویه ۲۰۲۶، تمامی تراکنش‌های B2B در کرواسی باید از یک فایل Schematron نوشته شده با XSLT 2.0 عبور کنند، اما کتابخانه داخلی libxslt در PHP تنها از XSLT 1.0 پشتیبانی می‌کند. توسعه‌دهندگان برای حفظ روند صدور فاکتور، یا باید افزونه native Saxon-C را اضافه کنند، یا از یک سرویس خارجی استفاده کنند و یا ۶۲ مورد بررسی را مجدداً در PHP بازنویسی نمایند.

PHP · 4 min read

پلتفرم ویدئویی برای کاهش ده برابری جستجوهای بدون نتیجه، SQLite FTS5 را با OpenSearch جایگزین کرد

تیم توسعه، SQLite را به عنوان منبع اصلی داده‌ها حفظ کرد و یک نسخه کپی (replica) فقط-خواندنی از OpenSearch با قابلیت‌های مرتبط‌سازی لایه‌بندی‌شده و تنظیمات فازی (fuzzy) بهینه‌شده ایجاد کرد؛ این کار باعث کاهش ده برابری جستجوهای بدون نتیجه شد، در حالی که میانگین تأخیر (latency) همچنان زیر ۲۸ میلی‌ثانیه باقی ماند.

PHP · 3 min read

Cloudflare Workers مصرف CPU تولید تامنیل سایت ویدئویی را به صفر رساند

با انتقال فرآیند تولید تامنیل به Cloudflare Workers، این پلتفرم میزبانی ویدئو تمام بار پردازش تصویر را از سرورهای اصلی خود حذف کرد، به نرخ ۹۶ درصدی برخورد کش در لبه (edge cache hit rate) دست یافت و به‌طور مداوم پاسخ‌های تصویری زیر یک ثانیه را در سراسر جهان ارائه داد.

PHP · 3 min read

وقتی مردم کلمه «حسابرسی» را می‌شنوند، معمولاً حسابداران، صفحات گسترده و فصل مالیات را تصور می‌کنند. در نرم‌افزار، حسابرسی

وقتی مردم کلمه «حسابرسی» را می‌شنوند، معمولاً حسابداران، صفحات گسترده و فصل مالیات را تصور می‌کنند. در نرم‌افزار، حسابرسی کاملاً حوزه متفاوتی است. موضوع آن کمتر درباره تعادل...

PHP · 4 min read

در DailyWatch، پنل «ویدیوهای مرتبط» ما با یک پرس‌وجوی ساده SQLite شروع شد. این پرس‌وجو سه جدول را با هم ترکیب کرد و موارد هم‌پوشان را شمرد

در DailyWatch، پنل «ویدیوهای مرتبط» ما با یک پرس‌وجوی ساده SQLite شروع شد. این پرس‌وجو سه جدول را با هم ترکیب کرد، تگ‌های هم‌پوشان را شمرد و یک لیست رتبه‌بندی شده ارائه داد. برای یک کاتالوگ کوچک، این...

PHP · 3 min read

PHP کارهای تکراری زیادی را در سمت سرور انجام می‌دهد. یک درخواست واحد ممکن است نیاز داشته باشد پوشه‌ای پر از تصاویر را اسکن کند، پ

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

PHP · 6 min read

Your file exists() Is Secretly a Network Call

Your file exists() Is Secretly a Network Call You write this line a thousand times: if ( file exists( $path ) ) { It looks safe. It looks fast. But if $path points to an S3 bucket…

PHP · 2 min read

PHP Adds Native Polling API, Giving Fibers OS-Level Speed

The newly merged Polling API wraps epoll, kqueue and IOCP, letting the event loop resume fibers with a single system call. Benchmarks show concurrency overhead drops to zero and CPU usage stays flat even with dozens of streams.

PHP · 3 min read

Optistream ۱۲ افزونه وردپرس را بدون از دست دادن سئو در ۱۰۰۰ صفحه، در قالب یک افزونه ادغام کرد

تیم با ساخت یک لودر بوت‌استرپ کوچک، محدود کردن (scoping) تمامی CSSها، بدون تغییر نگه داشتن کلیدهای متا و بررسی دقیق تمامی URLها با یک چک‌لیست سخت‌گیرانه پس از هر جایگزینی ماژول، از افت وضعیت ۲۰۰، لینک‌های شکسته یا اختلال در چیدمان اطمینان حاصل کرد.

PHP · 4 min read