Forwarded from | AmirHossein |
استریم ها در PHP - قسمت اول
در PHP، استریم (Stream) یک سازوکار انتزاعی برای مدیریت ورودی و خروجی دادهها است. به زبان ساده، استریمها به شما امکان میدهند انواع مختلف منابع داده (مانند فایلهای سیستم، درخواستهای شبکه، دادههای فشرده و ...) را از طریق یک رابط یکسان بخوانید یا بنویسید.
به جای آنکه برای هر نوع منبع تابعها یا روشهای جداگانهای داشته باشید، PHP با استفاده از استریمها یک مجموعه توابع عمومی (مثل fopen, fread, fwrite و ...) فراهم کرده که با همه این منابع به شکل یکنواخت رفتار میکنند.
هر استریم رَپر (Stream Wrapper) در PHP در واقع یک پروتکل یا طرح (scheme) خاص را پیادهسازی میکند که به صورت scheme:// استفاده میشود. برای مثال، file:// برای دسترسی به سیستم فایل محلی، https:// برای منابع وب، یا php:// برای منابع داخلی PHP استفاده میشود.
PHP به طور پیشفرض تعداد زیادی استریم رپر داخلی دارد که بسیاری از کارهای معمول را پوشش میدهند. شما میتوانید توسط این استریمها به سادگی کارهایی مثل خواندن فایلها، دریافت داده از وب, نوشتن خروجی، خواندن ورودی خام درخواستها و حتی کار با دادههای فشردهشده را انجام دهید، بدون اینکه نگران جزئیات سطح پایین هر کدام باشید.
استریمهای داخلی PHP - php://
1- php://input
این استریم برای دسترسی به دادهٔ ورودی خام HTTP در PHP استفاده میشود. به طور خاص، این استریم محتوای خام بدنهٔ درخواست HTTP را (معمولاً در درخواستهای POST یا PUT) ارائه میکند، بدون هیچگونه پردازش یا parse خودکار.
زمانی که نیاز دارید ورودی خام درخواست را بخوانید (مثلاً دریافت دادههای JSON از یک API کلاینت یا پردازش درخواستهای RESTful)، این استریم بسیار مفید است. برخلاف متغیرهای سراسری مانند $_POST که فقط دادههای form-urlencoded را میگیرند،
این استریم اجازه میدهد انواع دادهها (JSON, XML, متن خام و ...) را مستقیماً از بدنهٔ درخواست دریافت کنید.
در این مثال، محتوای خام ورودی HTTP با file_get_contents از php://input خوانده شده و سپس از JSON به آرایه PHP تبدیل میگردد.
در نهایت نام کاربر خروجی گرفته میشود. اگر درخواست فوق رشتهٔ JSON
را ارسال کرده باشد، خروجی برنامه Hello Ali خواهد بود.
توجه داشته باشید php://input فقط خواندنی است و فقط یک بار میتوان محتوا را از آن خواند، یعنی پس از خواندن، محتوای آن خالی میشود. همچنین در مورد درخواستهای معمولی فرم (مانند multipart/form-data برای آپلود فایل)، استفاده از این استریم توصیه نمیشود، زیرا PHP آن دادهها را قبلاً پردازش کرده است.
2- php://output
این استریم خروجی استاندارد اسکریپت PHP را نمایندگی میکند. هر دادهای که در آن نوشته شود، مستقیماً به خروجی معمول برنامه (همان چیزی که مرورگر دریافت میکند یا در CLI ترمینال نشان داده میشود) فرستاده میشود.
زمانی که بخواهید با توابع استریم دادهای را به خروجی بفرستید (به جای استفاده از echo یا print)، میتوانید php://output را مانند یک فایل باز کرده و در آن بنویسید.
این قابلیت میتواند در سناریوهایی مفید باشد که یک تابع انتظار یک منبع استریم برای خروجی دارد یا هنگامی که میخواهید خروجی را از سایر عملیات جدا کنید.
در این قطعه کد، ما استریم خروجی را باز کردهایم و یک خط متن را با fwrite در آن نوشتیم. نتیجهٔ اجرای این کد نمایش متن ذکر شده در خروجی (مثلاً مرورگر یا کنسول) است. در واقع کاری که fwrite در اینجا انجام میدهد معادل همان echo کردن رشتهها است.
در قسمت های بعدی با سایر استریمها در PHP آشنا خواهیم شد.
#PHP #PHP_streams
@AmirhDeveloper
.
در PHP، استریم (Stream) یک سازوکار انتزاعی برای مدیریت ورودی و خروجی دادهها است. به زبان ساده، استریمها به شما امکان میدهند انواع مختلف منابع داده (مانند فایلهای سیستم، درخواستهای شبکه، دادههای فشرده و ...) را از طریق یک رابط یکسان بخوانید یا بنویسید.
به جای آنکه برای هر نوع منبع تابعها یا روشهای جداگانهای داشته باشید، PHP با استفاده از استریمها یک مجموعه توابع عمومی (مثل fopen, fread, fwrite و ...) فراهم کرده که با همه این منابع به شکل یکنواخت رفتار میکنند.
هر استریم رَپر (Stream Wrapper) در PHP در واقع یک پروتکل یا طرح (scheme) خاص را پیادهسازی میکند که به صورت scheme:// استفاده میشود. برای مثال، file:// برای دسترسی به سیستم فایل محلی، https:// برای منابع وب، یا php:// برای منابع داخلی PHP استفاده میشود.
PHP به طور پیشفرض تعداد زیادی استریم رپر داخلی دارد که بسیاری از کارهای معمول را پوشش میدهند. شما میتوانید توسط این استریمها به سادگی کارهایی مثل خواندن فایلها، دریافت داده از وب, نوشتن خروجی، خواندن ورودی خام درخواستها و حتی کار با دادههای فشردهشده را انجام دهید، بدون اینکه نگران جزئیات سطح پایین هر کدام باشید.
استریمهای داخلی PHP - php://
1- php://input
این استریم برای دسترسی به دادهٔ ورودی خام HTTP در PHP استفاده میشود. به طور خاص، این استریم محتوای خام بدنهٔ درخواست HTTP را (معمولاً در درخواستهای POST یا PUT) ارائه میکند، بدون هیچگونه پردازش یا parse خودکار.
زمانی که نیاز دارید ورودی خام درخواست را بخوانید (مثلاً دریافت دادههای JSON از یک API کلاینت یا پردازش درخواستهای RESTful)، این استریم بسیار مفید است. برخلاف متغیرهای سراسری مانند $_POST که فقط دادههای form-urlencoded را میگیرند،
این استریم اجازه میدهد انواع دادهها (JSON, XML, متن خام و ...) را مستقیماً از بدنهٔ درخواست دریافت کنید.
$json = file_get_contents("php://input");
$data = json_decode($json, true);
echo "Hello " . $data["user"];در این مثال، محتوای خام ورودی HTTP با file_get_contents از php://input خوانده شده و سپس از JSON به آرایه PHP تبدیل میگردد.
در نهایت نام کاربر خروجی گرفته میشود. اگر درخواست فوق رشتهٔ JSON
{"user": "Ali"}را ارسال کرده باشد، خروجی برنامه Hello Ali خواهد بود.
توجه داشته باشید php://input فقط خواندنی است و فقط یک بار میتوان محتوا را از آن خواند، یعنی پس از خواندن، محتوای آن خالی میشود. همچنین در مورد درخواستهای معمولی فرم (مانند multipart/form-data برای آپلود فایل)، استفاده از این استریم توصیه نمیشود، زیرا PHP آن دادهها را قبلاً پردازش کرده است.
2- php://output
این استریم خروجی استاندارد اسکریپت PHP را نمایندگی میکند. هر دادهای که در آن نوشته شود، مستقیماً به خروجی معمول برنامه (همان چیزی که مرورگر دریافت میکند یا در CLI ترمینال نشان داده میشود) فرستاده میشود.
زمانی که بخواهید با توابع استریم دادهای را به خروجی بفرستید (به جای استفاده از echo یا print)، میتوانید php://output را مانند یک فایل باز کرده و در آن بنویسید.
این قابلیت میتواند در سناریوهایی مفید باشد که یک تابع انتظار یک منبع استریم برای خروجی دارد یا هنگامی که میخواهید خروجی را از سایر عملیات جدا کنید.
$fp = fopen("php://output", "w");
fwrite($fp, "Hello World!");
fclose($fp);در این قطعه کد، ما استریم خروجی را باز کردهایم و یک خط متن را با fwrite در آن نوشتیم. نتیجهٔ اجرای این کد نمایش متن ذکر شده در خروجی (مثلاً مرورگر یا کنسول) است. در واقع کاری که fwrite در اینجا انجام میدهد معادل همان echo کردن رشتهها است.
در قسمت های بعدی با سایر استریمها در PHP آشنا خواهیم شد.
#PHP #PHP_streams
@AmirhDeveloper
.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 استفاده از PHP نسخه 7.4 علاوه بر افزایش ریسک امنیتی برای وبسایت شما، می تواند در پرفرمنس و سئو سایت شما نیز تاثیر منفی داشته باشد.
بر اساس تست های انجام شده ارتقاع PHP به سری 8 می تواند سرعت و پرفرمنس سایت شمارا ۲۰٪ الی ۴۰٪ افزایش دهد، عدد چشمگیری که بعضی بیزینس ها برای دستیابی به آن هزینه های بسیار زیادی انجام میدهند.
</Hamidreza Zolfaghar>
#PHP
@TheRaymondDev
بر اساس تست های انجام شده ارتقاع PHP به سری 8 می تواند سرعت و پرفرمنس سایت شمارا ۲۰٪ الی ۴۰٪ افزایش دهد، عدد چشمگیری که بعضی بیزینس ها برای دستیابی به آن هزینه های بسیار زیادی انجام میدهند.
</Hamidreza Zolfaghar>
#PHP
@TheRaymondDev
Forwarded from Golden Code (علی 🇨🇴)
"چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور میکنن Laravel جواب نمیده! ولی واقعیت اینه که اگر از ابزارها و تکنیکهای درست استفاده کنی، Laravel خیلی هم قدرتمنده
✅ استفاده از Queue Jobs
ارسال عملیاتهای سنگین به صف برای پردازش در پسزمینه
✅ بهینهسازی دیتابیس: تعریف Index مناسب
استفاده از Query Builder به جای Eloquent برای کوئریهای سنگین یا حتی اگه می تونین کوئری خام بنویسین معجزه رو می بینید
✅ استفاده از Transaction
برای تضمین atomic بودن عملیاتهای حساس جاهایی که چند کار مرتبط با هم رو می خواین انجام بدین عالیه
✅ استفاده از chunk
بارگذاری و پردازش دادههای بزرگ بهصورت تکهای
✅ ۵. استفاده از Redis یا Kafka
برای صفهای سریع و سبک Redis
برای پروژه های بزرگ و real-time کافکا باور کنید معجزه می کنه
✅ بهینه سازی کد PHP و مصرف حافظه
استفاده از cursor() بهجای بارگذاری کل دیتا
جلوگیری از لوپهای سنگین و غیرضروری
نتیجه؟
اگه این موارد رو به درستی پیاده کنید، Laravel بهراحتی از پس میلیونها ترنزاکشن برمیاد بدون اینکه اپلیکیشنت کرش کنه! "
#Laravel
@GoldenCodeir
(به منبع توجه کنید👇🏾)
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور میکنن Laravel جواب نمیده! ولی واقعیت اینه که اگر از ابزارها و تکنیکهای درست استفاده کنی، Laravel خیلی هم قدرتمنده
✅ استفاده از Queue Jobs
ارسال عملیاتهای سنگین به صف برای پردازش در پسزمینه
✅ بهینهسازی دیتابیس: تعریف Index مناسب
استفاده از Query Builder به جای Eloquent برای کوئریهای سنگین یا حتی اگه می تونین کوئری خام بنویسین معجزه رو می بینید
✅ استفاده از Transaction
برای تضمین atomic بودن عملیاتهای حساس جاهایی که چند کار مرتبط با هم رو می خواین انجام بدین عالیه
✅ استفاده از chunk
بارگذاری و پردازش دادههای بزرگ بهصورت تکهای
✅ ۵. استفاده از Redis یا Kafka
برای صفهای سریع و سبک Redis
برای پروژه های بزرگ و real-time کافکا باور کنید معجزه می کنه
✅ بهینه سازی کد PHP و مصرف حافظه
استفاده از cursor() بهجای بارگذاری کل دیتا
جلوگیری از لوپهای سنگین و غیرضروری
نتیجه؟
اگه این موارد رو به درستی پیاده کنید، Laravel بهراحتی از پس میلیونها ترنزاکشن برمیاد بدون اینکه اپلیکیشنت کرش کنه! "
#Laravel
@GoldenCodeir
(به منبع توجه کنید👇🏾)
https://www.linkedin.com/posts/fererydoon-salemi_laravel-php-backenddevelopment-activity-7327385475915128832-DtQB?utm_source=share&utm_medium=member_android&rcm=ACoAACtoqKYB5Pk8cjIxolPHpdjShKtRL0tcolQ
Linkedin
#laravel #php #backenddevelopment #performance #scalability #queues #databaseoptimization #horizon | Fereydoon Salemi
تو مسیر که داشتم می اومدم یه پست دیدم که تا خواستم جواب بدم صفحه رفرش شد و رفت
دوستی که این سوال رو پرسیده بودی، امیدارم جوابش رو ببینی
چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور…
دوستی که این سوال رو پرسیده بودی، امیدارم جوابش رو ببینی
چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور…
Forwarded from laravel-news
باورتون نمیشه اگه بگم PHP Foundation تصمیم گرفته توسعه FrankenPHP رو به دست بگیره!!! 🤯🔥
فرانکین FrankenPHP توسط Kévin Dunglas ساخته شده و با حمایت Les-Tilleuls.coop توسعه پیدا کرده. این سرور با ادغام PHP مستقیماً در Go و وبسرور Caddy، کار دیپلویمنت رو خیلی سادهتر و سریعتر کرده و حتی هزینهها رو کاهش میده. همینطور از قابلیتهایی مثل اجرای real-time، حالت worker برای افزایش کارایی و هاستینگ پیشرفته پشتیبانی میکنه که الان توی فریمورکهایی مثل Laravel، Symfony و Yii هم ادغام شده.
حالا بنیاد PHP رسماً اعلام کرده که از این پروژه پشتیبانی میکنه، کدش رو تو گیتهاب رسمی میذاره و در توسعه فعّال اون نقش داره. این یک قدم بزرگ برای مدرنسازی اکوسیستم PHP هست، در حالی که مدیریت پروژه همچنان با توسعهدهنده اصلی پروژه میمونه.
اطلاعات بیشتر:
https://thephp.foundation/blog/2025/05/15/frankenphp/
#FrankenPHP #PHP_Foundation
فرانکین FrankenPHP توسط Kévin Dunglas ساخته شده و با حمایت Les-Tilleuls.coop توسعه پیدا کرده. این سرور با ادغام PHP مستقیماً در Go و وبسرور Caddy، کار دیپلویمنت رو خیلی سادهتر و سریعتر کرده و حتی هزینهها رو کاهش میده. همینطور از قابلیتهایی مثل اجرای real-time، حالت worker برای افزایش کارایی و هاستینگ پیشرفته پشتیبانی میکنه که الان توی فریمورکهایی مثل Laravel، Symfony و Yii هم ادغام شده.
حالا بنیاد PHP رسماً اعلام کرده که از این پروژه پشتیبانی میکنه، کدش رو تو گیتهاب رسمی میذاره و در توسعه فعّال اون نقش داره. این یک قدم بزرگ برای مدرنسازی اکوسیستم PHP هست، در حالی که مدیریت پروژه همچنان با توسعهدهنده اصلی پروژه میمونه.
اطلاعات بیشتر:
https://thephp.foundation/blog/2025/05/15/frankenphp/
#FrankenPHP #PHP_Foundation
Forwarded from Anophel | آنوفل
در PHP 8.1 و بالاتر، میتوان از Enum ها برای تعریف مجموعهای از ثابتها که با هم مرتبط هستند استفاده کرد. Enum (مخفف Enumeration) یک نوع داده خاص است که شامل مجموعهای از مقادیر ثابت و از پیش تعریفشده است. این مقادیر معمولاً با هم مرتبط هستند و به یک مفهوم خاص اشاره میکنند. به عنوان مثال، میتوان برای وضعیتهای مختلف یک سفارش (مانند "در انتظار"، "در حال پردازش"، "ارسال شده" و غیره) یک Enum تعریف کرد.
کی از Enum استفاده کنیم؟
تعریف مجموعهای از مقادیر ثابت و مرتبط: زمانی که مجموعهای از مقادیر ثابت وجود دارد که با هم مرتبط هستند و نیاز به مدیریت آنها دارید، میتوان از Enum استفاده کرد. مانند وضعیتهای مختلف یک سفارش، روزهای هفته، ماههای سال و غیره.
خوانایی و نگهداری بهتر کد: استفاده از Enum به کد شما خوانایی بیشتری میبخشد و همچنین از خطاهای ناشی از استفاده نادرست از مقادیر جلوگیری میکند.
جلوگیری از استفاده نادرست از مقادیر: وقتی که مقادیر ثابت را به صورت Enum تعریف میکنید، کامپایلر یا مفسر برنامه در برابر استفاده نادرست از این مقادیر به شما هشدار میدهد یا مانع از آن میشود.
کاهش استفاده از "عددهای جادویی": استفاده از Enum به جای اعداد یا رشتههای ثابت پراکنده در کد، باعث میشود که کد تمیزتر و قابل فهمتر باشد.
در اینجا یک مثال از یک Enum برای وضعیتهای یک سفارش در یک سیستم خرید آورده شده است.
ویژگیهای Enum در PHP:
1. تعریف به صورت Enum : Enum ها با استفاده از کلمه کلیدی enum تعریف میشوند.
2. مقادیر ثابت: Enum ها مجموعهای از مقادیر ثابت را تعریف میکنند که با هم مرتبط هستند.
3. پشتیبانی از انواع داده: Enum ها میتوانند انواع دادهای مختلف مثل string یا int را به عنوان مقدار خود داشته باشند.
4. قابلیت استفاده در توابع: Enum ها میتوانند به عنوان پارامتر به توابع و متدها ارسال شوند.
5. سازگاری با Match Expression: از match expression میتوان برای پردازش مقادیر Enum استفاده کرد.
6. تعریف متدها: میتوان متدهایی را در داخل Enum تعریف کرد که به مقادیر آن مرتبط هستند.
من در Anophel آنوفل بیشتر به این موضوع پرداختم لینک مقاله :
لینک مقاله
#لاراول #php
کی از Enum استفاده کنیم؟
تعریف مجموعهای از مقادیر ثابت و مرتبط: زمانی که مجموعهای از مقادیر ثابت وجود دارد که با هم مرتبط هستند و نیاز به مدیریت آنها دارید، میتوان از Enum استفاده کرد. مانند وضعیتهای مختلف یک سفارش، روزهای هفته، ماههای سال و غیره.
خوانایی و نگهداری بهتر کد: استفاده از Enum به کد شما خوانایی بیشتری میبخشد و همچنین از خطاهای ناشی از استفاده نادرست از مقادیر جلوگیری میکند.
جلوگیری از استفاده نادرست از مقادیر: وقتی که مقادیر ثابت را به صورت Enum تعریف میکنید، کامپایلر یا مفسر برنامه در برابر استفاده نادرست از این مقادیر به شما هشدار میدهد یا مانع از آن میشود.
کاهش استفاده از "عددهای جادویی": استفاده از Enum به جای اعداد یا رشتههای ثابت پراکنده در کد، باعث میشود که کد تمیزتر و قابل فهمتر باشد.
در اینجا یک مثال از یک Enum برای وضعیتهای یک سفارش در یک سیستم خرید آورده شده است.
ویژگیهای Enum در PHP:
1. تعریف به صورت Enum : Enum ها با استفاده از کلمه کلیدی enum تعریف میشوند.
2. مقادیر ثابت: Enum ها مجموعهای از مقادیر ثابت را تعریف میکنند که با هم مرتبط هستند.
3. پشتیبانی از انواع داده: Enum ها میتوانند انواع دادهای مختلف مثل string یا int را به عنوان مقدار خود داشته باشند.
4. قابلیت استفاده در توابع: Enum ها میتوانند به عنوان پارامتر به توابع و متدها ارسال شوند.
5. سازگاری با Match Expression: از match expression میتوان برای پردازش مقادیر Enum استفاده کرد.
6. تعریف متدها: میتوان متدهایی را در داخل Enum تعریف کرد که به مقادیر آن مرتبط هستند.
من در Anophel آنوفل بیشتر به این موضوع پرداختم لینک مقاله :
لینک مقاله
#لاراول #php
Anophel
Anophel | Where Developers Create Their Own Path
Anophel is an ecosystem for developers—a place for those who prefer building over consuming. If you want to create tools, think differently, and forge your own path in coding, Anophel is with you.
Forwarded from DevTwitter | توییت برنامه نویسی
نسخهی جدید PHP 8.5 تو راهه :)
چند قابلیت جدید و بهبود جالب توی این نسخه:
* توابع array_first() و array_last() برای دسترسی سریعتر به اولین و آخرین عنصر آرایهها (البته array_last تفاوت خاصی با end() نداره)
* امکان استفاده از Closure و Callable در const
* ویژگی [#[\NoDiscard]] برای مشخصکردن اینکه مقدار return باید استفاده بشه
* بهبود نمایش خطاها با Error Backtraces v2
* توابع جدید get_error_handler() و get_exception_handler()
* بهبود performance در cURL و کلاس Directory
نسخه 8.5 شاید تغییرات انقلابی نداشته باشه، ولی تجربهی برنامهنویسی رو بهتر و تمیزتر میکنه.
البته هنوز خبری از generic types درستوحسابی نیست و PHP کاملاً type-safe نشده
منبع:
https://wiki.php.net/rfc#php_85
@DevTwitter | <Milad Niroee/>
چند قابلیت جدید و بهبود جالب توی این نسخه:
* توابع array_first() و array_last() برای دسترسی سریعتر به اولین و آخرین عنصر آرایهها (البته array_last تفاوت خاصی با end() نداره)
* امکان استفاده از Closure و Callable در const
* ویژگی [#[\NoDiscard]] برای مشخصکردن اینکه مقدار return باید استفاده بشه
* بهبود نمایش خطاها با Error Backtraces v2
* توابع جدید get_error_handler() و get_exception_handler()
* بهبود performance در cURL و کلاس Directory
نسخه 8.5 شاید تغییرات انقلابی نداشته باشه، ولی تجربهی برنامهنویسی رو بهتر و تمیزتر میکنه.
البته هنوز خبری از generic types درستوحسابی نیست و PHP کاملاً type-safe نشده
منبع:
https://wiki.php.net/rfc#php_85
@DevTwitter | <Milad Niroee/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
Forwarded from Milwad Khosravi | میلاد خسروی
در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل همزمان با اجرا. این تکنیک باعث میشه که کدهایی که به صورت معمول تفسیر (interpret) میشن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریعتر بشه.
- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیکتر به زبانهای کامپایلشده (مثل C)
🧪 کار JIT در PHP چیه؟
در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر میکرد.
کار JIT باعث میشه:
بخشهایی از کد که زیاد استفاده میشن (مثلاً حلقهها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.
- پردازش تصویر
- بازیسازی
- پروژههای علمی
- کدهایی که زیاد اجرا میشن مثل فریمورکها یا CMSها
#PHP #JIT #Milwad #Tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golden Code (علی 🇨🇴)
متود segment() در لاراول به شما این امکان رو میده که بخشهای مختلف مسیر URL رو به راحتی استخراج و بررسی کنید. این متود برای ساخت منطقهای داینامیک بر اساس URL بسیار کاربردیه.
📌 کاربردهای اصلی:
خواندن بخشهای جداگانه مسیر URL
شرط گذاری و تصمیم گیری بر اساس مسیر فعلیمون
فیلتر کردن دیتاها یا تنظیم نمایش محتوا براساس URL
نحوه استفاده
شماره بخشها از 1 شروع میشه.
مثال:
اگه URL برابر باشه با:
نکته :
اگه بخش مورد نظر در URL وجود نداشته باشه، مقدار null برمیگردد.
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت 👇🏾)
https://x.com/MilwadDev/status/1943673513291690462?s=35
📌 کاربردهای اصلی:
خواندن بخشهای جداگانه مسیر URL
شرط گذاری و تصمیم گیری بر اساس مسیر فعلیمون
فیلتر کردن دیتاها یا تنظیم نمایش محتوا براساس URL
نحوه استفاده
$segment1 = $request->segment(1); // بخش اول مسیر
$segment2 = $request->segment(2); // بخش دوم مسیر
شماره بخشها از 1 شروع میشه.
مثال:
اگه URL برابر باشه با:
https://example.com/products/electronics/phones
$request->segment(1) مقدار "products"
$request->segment(2) مقدار "electronics"
$request->segment(3) مقدار "phones"
نکته :
اگه بخش مورد نظر در URL وجود نداشته باشه، مقدار null برمیگردد.
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت 👇🏾)
https://x.com/MilwadDev/status/1943673513291690462?s=35
❤1
Forwarded from Golden Code (علی 🇨🇴)
متود segment() در لاراول به شما این امکان رو میده که بخشهای مختلف مسیر URL رو به راحتی استخراج و بررسی کنید. این متود برای ساخت منطقهای داینامیک بر اساس URL بسیار کاربردیه.
📌 کاربردهای اصلی:
خواندن بخشهای جداگانه مسیر URL
شرط گذاری و تصمیم گیری بر اساس مسیر فعلیمون
فیلتر کردن دیتاها یا تنظیم نمایش محتوا براساس URL
نحوه استفاده
شماره بخشها از 1 شروع میشه.
مثال:
اگه URL برابر باشه با:
نکته :
اگه بخش مورد نظر در URL وجود نداشته باشه، مقدار null برمیگردد.
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت 👇🏾)
https://x.com/MilwadDev/status/1943673513291690462?s=35
📌 کاربردهای اصلی:
خواندن بخشهای جداگانه مسیر URL
شرط گذاری و تصمیم گیری بر اساس مسیر فعلیمون
فیلتر کردن دیتاها یا تنظیم نمایش محتوا براساس URL
نحوه استفاده
$segment1 = $request->segment(1); // بخش اول مسیر
$segment2 = $request->segment(2); // بخش دوم مسیر
شماره بخشها از 1 شروع میشه.
مثال:
اگه URL برابر باشه با:
https://example.com/products/electronics/phones
$request->segment(1) مقدار "products"
$request->segment(2) مقدار "electronics"
$request->segment(3) مقدار "phones"
نکته :
اگه بخش مورد نظر در URL وجود نداشته باشه، مقدار null برمیگردد.
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت 👇🏾)
https://x.com/MilwadDev/status/1943673513291690462?s=35
Forwarded from DevTwitter | توییت برنامه نویسی
اگه بهتون بگم با #php میشه یه سروری نوشت که به صورت مولتی تِرِد و مولتی پراسس سوکت بده و #NodeJS در برابرش عددی نیست و میشه باهاش چت نوشت یه جوری که تلگرامو بزاره جیبش احتمالا بهم میخندین؟
خنده ها تون که تموم شد این دوتا رو سرچ کنین.
#cphalcon
#swoole
<Mr pro grammer/>
@DevTwitter
خنده ها تون که تموم شد این دوتا رو سرچ کنین.
#cphalcon
#swoole
<Mr pro grammer/>
@DevTwitter
Forwarded from DevTwitter | توییت برنامه نویسی
#پروگرمر_عاشق
#کارفرمای_آلت_چهره
#شرکت_بانوآور_صاحاب
#ترمال_کدر
#بدرد
#دریای_کدگویی_ساحل_ندارد
#برنامه_نویس_مکان_جور_کن
#کدشعر
#کدشر
#شیاف_زوری
#بپا_نره_درت
#از_ترس_کیونشون
#نقل_کد
#کدبوک
#حاجی_پشمام
#به_سوی_گا
#بگایی_در_کمین
#دون
#تو_کوچمون_عروسیه
#گوز_گوز
#وی_اس_کد_تیپ
#جامه_بدرید
#کوته_نیوز
#دراز_نیوز
#میم_شبانگاهی
#لاس
هشتگهای موضوعی:
#angular
#browser_extension
#javascript
#linux
#llm
#php
#python
#wordpress
هشتگ هایی که احتمالا پست جدیدی در موردشون گذاشته نمیشه:
#آقای_هاشمی
#گیتهاب_پک
#کارآموز_مفتی
#برنامه_نویس_یبس
#کارفرمای_آلت_چهره
#شرکت_بانوآور_صاحاب
#ترمال_کدر
#بدرد
#دریای_کدگویی_ساحل_ندارد
#برنامه_نویس_مکان_جور_کن
#کدشعر
#کدشر
#شیاف_زوری
#بپا_نره_درت
#از_ترس_کیونشون
#نقل_کد
#کدبوک
#حاجی_پشمام
#به_سوی_گا
#بگایی_در_کمین
#دون
#تو_کوچمون_عروسیه
#گوز_گوز
#وی_اس_کد_تیپ
#جامه_بدرید
#کوته_نیوز
#دراز_نیوز
#میم_شبانگاهی
#لاس
هشتگهای موضوعی:
#angular
#browser_extension
#javascript
#linux
#llm
#php
#python
#wordpress
هشتگ هایی که احتمالا پست جدیدی در موردشون گذاشته نمیشه:
#آقای_هاشمی
#گیتهاب_پک
#کارآموز_مفتی
#برنامه_نویس_یبس
Forwarded from DevTwitter | توییت برنامه نویسی
#php
با یک دکمه, سرعت خروجی سایت با لاراول از 38ms به 8ms تغییر کرد,
و میزان مصرف رم در هر درخواست از 11mb به 0.26mb تغییر کرد
دکمه فعال سازی opcache در بخش تنظمات php سیپنل نسخه 8.4
میدونستم خوبه ولی این حجم از تغییر رو انتظار نداشتم
@DevTwitter | <Masoud Derakhshi/>
با یک دکمه, سرعت خروجی سایت با لاراول از 38ms به 8ms تغییر کرد,
و میزان مصرف رم در هر درخواست از 11mb به 0.26mb تغییر کرد
دکمه فعال سازی opcache در بخش تنظمات php سیپنل نسخه 8.4
میدونستم خوبه ولی این حجم از تغییر رو انتظار نداشتم
@DevTwitter | <Masoud Derakhshi/>
👍1
Forwarded from Golden Code (علی 🇨🇴)
خیلی مواقع بعده گرفتنه داده از دیتابیس، نیاز داریم سریع و تمیز به اطلاعات دسترسی داشته باشیم.
تابع array_column در PHP دقیقا برای همین ساخته شده!
🔹 چی کار میکنه؟
میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.
حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.
📌 یه مثال:
✅ حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.
📌 کاربردهاش؟
ساخت lookup table سریع
کدنویسی تمیزتر و کوتاهتر
عالی برای caching و join کردن دیتاستها
خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip
@GoldenCodeir 🔥
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/MrPunyapal/status/1969823906816250147?t=9s-5Sez6ckqd63_S0tMWlg&s=35
تابع array_column در PHP دقیقا برای همین ساخته شده!
🔹 چی کار میکنه؟
میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.
حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.
📌 یه مثال:
$users = [
['id' => 1, 'name' => 'Ali', 'email' => '[email protected]'],
['id' => 2, 'name' => 'Sara', 'email' => '[email protected]'],
['id' => 3, 'name' => 'Reza', 'email' => '[email protected]'],
];
// Reindex بر اساس id
$indexed = array_column($users, null, 'id');
✅ حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.
📌 کاربردهاش؟
ساخت lookup table سریع
کدنویسی تمیزتر و کوتاهتر
عالی برای caching و join کردن دیتاستها
خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip
@GoldenCodeir 🔥
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/MrPunyapal/status/1969823906816250147?t=9s-5Sez6ckqd63_S0tMWlg&s=35
X (formerly Twitter)
Punyapal Shah | Laravel Artisan | PHP Developer (@MrPunyapal) on X
Laravel devs 👋
Do you know you can use `allowStrayRequests` to permit specific URL patterns while blocking others in testing? 🤔
Check out this info straight from docs! 🤌
#readLaravelDocs
Do you know you can use `allowStrayRequests` to permit specific URL patterns while blocking others in testing? 🤔
Check out this info straight from docs! 🤌
#readLaravelDocs
Forwarded from Golden Code (علی 🇨🇴)
خیلی مواقع بعده گرفتنه داده از دیتابیس، نیاز داریم سریع و تمیز به اطلاعات دسترسی داشته باشیم.
تابع array_column در PHP دقیقا برای همین ساخته شده!
🔹 چی کار میکنه؟
میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.
حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.
📌 یه مثال:
✅ حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.
کاربردهاش؟
ساخت lookup table سریع
کدنویسی تمیزتر و کوتاهتر
عالی برای caching و join کردن دیتاستها
خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/wendell_adriel/status/1969010695279989061?t=h88vjyQnlMap9vvVDFxhXQ&s=35
تابع array_column در PHP دقیقا برای همین ساخته شده!
🔹 چی کار میکنه؟
میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.
حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.
📌 یه مثال:
$users = [
['id' => 1, 'name' => 'Ali', 'email' => '[email protected]'],
['id' => 2, 'name' => 'Sara', 'email' => '[email protected]'],
['id' => 3, 'name' => 'Reza', 'email' => '[email protected]'],
];
// Reindex بر اساس id
$indexed = array_column($users, null, 'id');
✅ حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.
کاربردهاش؟
ساخت lookup table سریع
کدنویسی تمیزتر و کوتاهتر
عالی برای caching و join کردن دیتاستها
خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/wendell_adriel/status/1969010695279989061?t=h88vjyQnlMap9vvVDFxhXQ&s=35
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
PHP Tip 🚀
Using the array_column function, you can reindex a result set by one of its values easily.
This can allow lookups to become direct with a clean code. Great for caching for when you need to join across multiple datasets.
Check the example to learn…
Using the array_column function, you can reindex a result set by one of its values easily.
This can allow lookups to become direct with a clean code. Great for caching for when you need to join across multiple datasets.
Check the example to learn…
Forwarded from Milwad Khosravi | میلاد خسروی
#1 نتایج جالب از گزارش 📊 State of PHP 2025
توی این نظرسنجی، بیشتر توسعهدهندههای PHP از ژاپن بودن 🇯🇵 (حدود ۱۲٪)، بعد از اون آمریکا 🇺🇸 و روسیه 🇷🇺 هرکدوم با ۸٪ در رتبههای بعدی قرار دارن.
اما نکته جالب اینجاست که بخش بزرگی از جامعه PHP (حدود ۳۶٪) از کشورهای «دیگه» هستن — یعنی جامعه PHP واقعاً پراکنده و جهانیه 🌍
به نظرت چرا ژاپن اینقدر فعالتر از بقیه کشورهاست؟
آیا به فرهنگ کاریشون برمیگرده یا محبوبیت خاص PHP اونجاست؟ 🤔
#Milwad #PHP #PHPState
📱 @MilwadKhosravi
توی این نظرسنجی، بیشتر توسعهدهندههای PHP از ژاپن بودن 🇯🇵 (حدود ۱۲٪)، بعد از اون آمریکا 🇺🇸 و روسیه 🇷🇺 هرکدوم با ۸٪ در رتبههای بعدی قرار دارن.
اما نکته جالب اینجاست که بخش بزرگی از جامعه PHP (حدود ۳۶٪) از کشورهای «دیگه» هستن — یعنی جامعه PHP واقعاً پراکنده و جهانیه 🌍
به نظرت چرا ژاپن اینقدر فعالتر از بقیه کشورهاست؟
آیا به فرهنگ کاریشون برمیگرده یا محبوبیت خاص PHP اونجاست؟ 🤔
#Milwad #PHP #PHPState
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Milwad Khosravi | میلاد خسروی
#2 📊 برنامه توسعهدهندههای PHP برای ۱۲ ماه آینده چیه؟ 👩💻
طبق گزارش State of PHP 2025، حدود ۵۸٪ از توسعهدهندهها قصد ندارن به زبان جدیدی مهاجرت کنن یا اون رو یاد بگیرن.
اما در بین کسانی که برنامه دارن، زبان Go با ۱۵٪ در صدر انتخابهاست، بعد از اون Python (۱۱٪)، Rust و TypeScript (هر کدوم ۷٪) و Kotlin (۶٪) قرار دارن.
بهنظر میاد Go داره کمکم به انتخاب محبوب بعدی بین توسعهدهندههای PHP تبدیل میشه 💡
تو اگه قرار باشه به زبانی دیگه مهاجرت کنی، انتخابت چیه؟ 🤔
#Milwad #PHP #PHPState
📱 @MilwadKhosravi
طبق گزارش State of PHP 2025، حدود ۵۸٪ از توسعهدهندهها قصد ندارن به زبان جدیدی مهاجرت کنن یا اون رو یاد بگیرن.
اما در بین کسانی که برنامه دارن، زبان Go با ۱۵٪ در صدر انتخابهاست، بعد از اون Python (۱۱٪)، Rust و TypeScript (هر کدوم ۷٪) و Kotlin (۶٪) قرار دارن.
بهنظر میاد Go داره کمکم به انتخاب محبوب بعدی بین توسعهدهندههای PHP تبدیل میشه 💡
تو اگه قرار باشه به زبانی دیگه مهاجرت کنی، انتخابت چیه؟ 🤔
#Milwad #PHP #PHPState
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Forwarded from Milwad Khosravi | میلاد خسروی
#3 📊 چند ساله با PHP کار میکنی؟
طبق آمار تازهی گزارش State of PHP 2025، حدود ۷۲٪ از توسعهدهندههای PHP بیش از ۴ سال سابقهی کار با این زبان رو دارن — یعنی جامعه PHP پر از افراد باتجربهست 💪
در مقایسه با سال قبل، تغییر چشمگیری دیده نمیشه، ولی یه نکته جالبه:
تعداد تازهواردها (زیر ۶ ماه تجربه) نسبت به پارسال دو برابر شده — از ۲٪ به ۴٪ 🚀
به نظر میرسه PHP همچنان داره توسعهدهندههای جدیدی رو جذب میکنه، در حالی که بخش بزرگی از جامعه هنوز وفادار و فعال باقی مونده.
👀 تو چند ساله با PHP کار میکنی؟
#Milwad #PHP #PHPStat
📱 @MilwadKhosravi
طبق آمار تازهی گزارش State of PHP 2025، حدود ۷۲٪ از توسعهدهندههای PHP بیش از ۴ سال سابقهی کار با این زبان رو دارن — یعنی جامعه PHP پر از افراد باتجربهست 💪
در مقایسه با سال قبل، تغییر چشمگیری دیده نمیشه، ولی یه نکته جالبه:
تعداد تازهواردها (زیر ۶ ماه تجربه) نسبت به پارسال دو برابر شده — از ۲٪ به ۴٪ 🚀
به نظر میرسه PHP همچنان داره توسعهدهندههای جدیدی رو جذب میکنه، در حالی که بخش بزرگی از جامعه هنوز وفادار و فعال باقی مونده.
👀 تو چند ساله با PHP کار میکنی؟
#Milwad #PHP #PHPStat
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 دلیل محبوبیت بیشتر PHP در میان برنامه نویسان جهان
یکی از مهم ترین چالش های توسعهی وب آپ های امروزی، پیچیدگی روزافزون در ساخت، نگهداری و توسعهی نرم افزار هاست. این پیچیدگی مستقیماً بر تصمیم برنامهنویسان در انتخاب زبان و ابزار تأثیر میگذارد.
در گذشته، ساخت یک وب سایت پویا با زبان هایی مانند PHP بسیار ساده بود. کافی بود چند فایل بسازی و آن را روی یک هاست آپلود کنی. اما با ظهور وب آپهای تعاملی، تک صفحهای (SPA) و نیاز به تجربهی کاربری بهتر، زبان هایی مانند JavaScript در سمت کاربر و سرور اهمیت بیشتری پیدا کردند.
هرچه ابزار ها و فریم ورک های JavaScript پیشرفتهتر شدند، پیچیدگی توسعه نیز افزایش یافت. راهاندازی پروژه، تنظیمات وابستگیها، ساختارهای کامپوننتی، و مدیریت وضعیت (state management) باعث شدهاند یادگیری و کار با اکوسیستم JavaScript زمان بر و چالش برانگیز باشد.
در مقابل، PHP با فریم ورک هایی مانند Laravel توانسته تعادلی بین سادگی و قدرت ایجاد کند. همین سادگی در راهاندازی، هزینهی پایین میزبانی، و گستردگی منابع آموزشی باعث شده هنوز هم بسیاری از توسعه دهندگان در سراسر جهان، PHP را برای پروژه های خود انتخاب کنند.
در نهایت، میتوان گفت که پیچیدگی توسعه یکی از عوامل تعیین کننده در انتخاب زبان برنامهنویسی است. برنامهنویسان به دنبال زبانی هستند که علاوه بر قدرت، مسیر توسعهی سادهتر و سریعتری فراهم کند. زبانهایی که بتوانند این تعادل را حفظ کنند، در آینده بیشترین استقبال را خواهند داشت.
#php
#لاراول
@TheRaymondDev
یکی از مهم ترین چالش های توسعهی وب آپ های امروزی، پیچیدگی روزافزون در ساخت، نگهداری و توسعهی نرم افزار هاست. این پیچیدگی مستقیماً بر تصمیم برنامهنویسان در انتخاب زبان و ابزار تأثیر میگذارد.
در گذشته، ساخت یک وب سایت پویا با زبان هایی مانند PHP بسیار ساده بود. کافی بود چند فایل بسازی و آن را روی یک هاست آپلود کنی. اما با ظهور وب آپهای تعاملی، تک صفحهای (SPA) و نیاز به تجربهی کاربری بهتر، زبان هایی مانند JavaScript در سمت کاربر و سرور اهمیت بیشتری پیدا کردند.
هرچه ابزار ها و فریم ورک های JavaScript پیشرفتهتر شدند، پیچیدگی توسعه نیز افزایش یافت. راهاندازی پروژه، تنظیمات وابستگیها، ساختارهای کامپوننتی، و مدیریت وضعیت (state management) باعث شدهاند یادگیری و کار با اکوسیستم JavaScript زمان بر و چالش برانگیز باشد.
در مقابل، PHP با فریم ورک هایی مانند Laravel توانسته تعادلی بین سادگی و قدرت ایجاد کند. همین سادگی در راهاندازی، هزینهی پایین میزبانی، و گستردگی منابع آموزشی باعث شده هنوز هم بسیاری از توسعه دهندگان در سراسر جهان، PHP را برای پروژه های خود انتخاب کنند.
در نهایت، میتوان گفت که پیچیدگی توسعه یکی از عوامل تعیین کننده در انتخاب زبان برنامهنویسی است. برنامهنویسان به دنبال زبانی هستند که علاوه بر قدرت، مسیر توسعهی سادهتر و سریعتری فراهم کند. زبانهایی که بتوانند این تعادل را حفظ کنند، در آینده بیشترین استقبال را خواهند داشت.
#php
#لاراول
@TheRaymondDev
Forwarded from Milwad Khosravi | میلاد خسروی
بعد از اون، PHP CS Fixer (۳۰٪) و PHP_CodeSniffer (۲۲٪) بیشترین استفاده رو دارن.
جالبه بدونیم که فقط ۴۲٪ از توسعهدهندهها هیچ ابزاری برای بررسی کیفیت کد استفاده نمیکنن — کمترین میزان در ۵ سال گذشته 👏
بهنظر میرسه جامعه PHP بیشازپیش به سمت کد تمیز و استاندارد پیش میره ✨
🧠 تو بیشتر از کدوم ابزارها استفاده میکنی؟
#PHP #PHPState #Milwad
Please open Telegram to view this post
VIEW IN TELEGRAM