Golden Code
726 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
Forwarded from CleverDevs (Mammad)
کامند های artisan توی لاراول 11

#php #laravel
@CleverDevs - @CleverDevsGp
👍85🔥2
وقتی که نیاز داریم چندین کلاس رو از یک namespace وارد کنیم، معمولاً هر کدوم رو با use جداگانه درج میکنیم. اما میشه همه‌ی این کلاس هارو توی یک خط use کنیم!

چجوری؟
use Namespace\{ClassA, ClassB, ClassC};

مزایاش چیه؟؟
تمیزتر شدن و کمتر شدنه تعداد خطوط.
#PHP
#clean_code
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/laravelbackpack/status/1856313510768324670?t=qOO4OC7jKWvPITFKNSHOtA&s=1
7👍7🏆1
وقتی از دستور "%LIKE "%fo برای جستجو استفاده می‌کنیم، درین شرایط دیتابیس باید تمام اطلاعات رو برامون بررسی کنه که خب باعث میشه سرعت پایین بیاد. راه بهتر برای جستجوی سریعتر استفاده از full-text هستش.

این روش کمک میکنه تا دیتابیس خیلی سریع‌تر و کارآمدتر فرایند جستجو رو انجام بده.
(طریقه استفادش در تصویر درج شده)
#SQL
#PHP
@GoldenCodeir
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1902014134561947783?t=jHjPbh6DAmevpRPeQSCDWg&s=35
🔥51👏1🤔1
"چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟

وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور میکنن 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
👍72🔥1👏1
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
👍6🔥21
🧠 جی آی تی JIT یعنی چی؟

در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل هم‌زمان با اجرا. این تکنیک باعث می‌شه که کدهایی که به صورت معمول تفسیر (interpret) می‌شن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریع‌تر بشه.


مزایای JIT

- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیک‌تر به زبان‌های کامپایل‌شده (مثل C)


🧪 کار JIT در PHP چیه؟

در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر می‌کرد.

کار JIT باعث می‌شه:
بخش‌هایی از کد که زیاد استفاده می‌شن (مثلاً حلقه‌ها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.

⚙️ این باعث افزایش سرعت اجرای برنامه‌ها می‌شه، مخصوصاً در کارهای محاسباتی سنگین مثل:

- پردازش تصویر
- بازی‌سازی
- پروژه‌های علمی
- کدهایی که زیاد اجرا می‌شن مثل فریم‌ورک‌ها یا CMSها

#PHP #JIT #Milwad #Tutorial

📱 @MilwadKhosravi
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥2👍1
متود segment() در لاراول به شما این امکان رو میده که بخش‌های مختلف مسیر URL رو به راحتی استخراج و بررسی کنید. این متود برای ساخت منطق‌های داینامیک بر اساس URL بسیار کاربردیه.

📌 کاربردهای اصلی:

خواندن بخش‌های جداگانه مسیر 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
👍6🆒31🔥1
خیلی مواقع بعده گرفتنه داده از دیتابیس، نیاز داریم سریع و تمیز به اطلاعات دسترسی داشته باشیم.
تابع 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
👍11
به گفته ی Taylor Otwell

نسخه‌ای جدید از لاراول منتشر شد که دو ویژگی قدرتمند و کاربردی بهش اضافه شده:

📌 شماره ۱ : Cache Failover

یکی از چالش‌های رایج در پروژه‌های بزرگ، خرابی کش (مثل Redis) است. در گذشته اگه کش از کار میفتاد، ممکن بود پروژه با خطا مواجه بشه و از کار بیفته.

حالا لاراول از cache failover پشتیبانی میکنه:
اگه کش اصلی در دسترس نباشه لاراول بصورت خودکار سراغ کش پشتیبان (مثل فایل یا دیتابیس) میره و از بروز خطا جلوگیری میکنه.


📌 شماره ۲: Deferred Queue

قابلیت دوم، نوع جدیدی از صف هست با نام deferred.
این صف‌ها به شما اجازه میدن که اجرای job هارو تا زمانی خاص به تاخیر بندازید ، نه صرفا با delay زمانی، بلکه با منطق‌ های انعطاف‌ پذیرتر.

مثلا:
میتونید job ها رو در صف نگه دارید، ولی اجرای اونارو تا زمان فراهم بودن شرایط مشخصی (مثل آماده شدن یک ریسورس خارجی یا عبور از محدودیت‌ها) به تعویق بندازین.

#Laravel #PHP #Laravel_tip #لاراول

@GoldenCodeir 🔥

داکیومنته لاراول:
https://laravel.com/docs/12.x/cache#cache-failover
(منبع👇🏾)
https://x.com/taylorotwell/status/1980664560492376378?t=AW_V157KGhHWfyPOqCy1Lg&s=35
👍114
در نسخه‌ی جدید PHP 8.5 تابع filter_var() یه قابلیت کاربردیه تازه داره:

FILTER_THROW_ON_FAILURE

تا قبل ازین اگه اعتبارسنجی دیتا (مثلا ایمیل نامعتبر) fail میشد،
تابع فقط مقدار false برمیگردوند و باید دستی بررسیش میکردی.

اما حالا بااین گزینه، بجای برگردوندنه false، یک Exception پرتاب (throw) میشه 👇🏾

try {
$email = filter_var('not-an-email', FILTER_VALIDATE_EMAIL, FILTER_FLAG_THROW_ON_FAILURE);
}
catch (ValueError $e)
{
echo "ایمیل نامعتبر است!";
}

مزایاش؟

کد تمیزتر ، خطایابی سریع‌تر ، هماهنگی بهتر با Exception Handling در پروژه‌های مدرن PHP

#php #backend

@GoldenCodeir 🔥

(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1983537236403794361?t=IIrUtS60L_j-Rl6cHxtwlg&s=19
👍10🔥1👏1