Golden Code – Telegram
Golden Code
737 subscribers
53 photos
248 links
نکات laravel, php و...
Download Telegram
"در هنگام فراخوانی ()Model::all ما حتی این امکان رو داریم که مشخص کنیم کدام ستون ها در اختیارمون قرار بگیره👌🏾

همونطور که در مثالش ملاحظه میکنین، ممکنه اصلن از مدل User نخوایم همه ی ستون هاشو برامون بیاره و صرفا id, name ,email‌ رو نیاز داشته باشیم ، درین شرایط باید اینگونه درخواست رو بنویسیم: 🌴🪴"
User::all(["id","name","email"]);
@GoldenCodeir
(به منبعش و مثال مربوطش توجه کنین👇🏾)
https://x.com/PovilasKorop/status/1772937867632750866?t=3tJHIxAeFAhrR_JqZEW1ng&s=35
👍8
"میتونیم در لاراول تاریخ رو با متود هایی مثل ()whereMonth و یا ()whereDate در کوئری زدن مورد بررسی قرار بدیم✔️ خب حالا بریم مثال دو در تصویر منبع (whereMonth )رو یه نگاه بندازیم:

در ورودی عدد ۱۲ قرار داده شد پس طبق اون کوئری، باید همه ی کاربرانی که در ماه دوازدهم ایجاد شدن برامون برگرده.🪴🌴
(البته همونطور که میدونین این‌سبک از کوئری زدن‌ ها کمی کند هستن)"
@GoldenCodeir
(در منبعُ مثالش به متود های بیشتری اشاره شده👇🏾)
https://x.com/PovilasKorop/status/1773276599493816429?t=6IaDxDSDYG_rKhOj0n7Qqg&s=35
👍7🔥1
"اگه خواستین برخی از ستون های دیتابیس رو در جدولی خاص افزایش بدین کافیه از تابع ()increment استفاده کنین.
در جایی مثل آمار بازدیدکنندگان کاربرد داره.👌🏾

قرار هم نیست صرفا یک واحد اضافه کنه، خودمون هم میتونیم تعیین که طبق چه الگویی افزایش پیدا کنه..
طرز کارشم اینجوریه که در ورودیه شماره یک نام ستون، ورودیه دوم تعداد واحدی که میخوایم اضافه شه (در مثال زیر ۵۰ هست)✔️"
@GoldenCodeir
(به منبع و مثال دقت کنین👇🏾)
https://twitter.com/PovilasKorop/status/1773620614089109849?t=kF_8my-XYkuOBXFmvuXlWQ&s=19
👍62
متود ()firstOrCreate سعی میکنه نتیجه رو در ستونی که بهش گفتیم پیدا کنه.
اگر رکورد در دیتابیس پیدا نشد ، یه رکورد جدید ایجاد میشه.
📌 حالا بریم بیشتر بررسیش کنیم:
به مثال زیر دقت کنین، اگر در جدول posts یک رکورد با 'noscript‌' = 'laravel_tip' وجود داشته باشه که میاره واسمون،
اگه نباشه می‌سازه برامون با همین اطلاعاتی که گفتیم بهش...✔️
@GoldenCodeir
(به منبع و مثالش دقت کنین دوستان👇🏾)
https://x.com/iamgurmandeep/status/1771610947188125964?t=qjlRxwmTRrWyrYtat9GLnA&s=09
👍3
"اگه نیاز داشتین که چند کلمه ی اول از یک متن رو که از دیتابیس دریافت شده نمایش بدین میتونید خیلی راحت با استفاده از متود words این کارو انجام بدید ،مثال:
str($denoscription)->words(20);
الان همونطور که مشخص کردیم میره فقط ۲۰ کلمه ی اول رو از denoscription$ میگیره"
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://twitter.com/PovilasKorop/status/1775097098364403845?t=CVFfcHZGVvv44YfXGanlYg&s=19
🔥5👍2
ممکنه بخوایم مطمئن شیم که یه کالکشن، اون آیتم مدنظرمون رو بطور یکتا داره یا نه.
درین شرایط بجای استفاده از متود ()count میتونیم از ()containsOneItem هم استفاده کنیم.
حالا چجوری کار میکنه؟

اگه تعداد اون آیتم مدنظرمون در کالکشن ، بیشتر از یه دونه باشه پاسخ false میشه، اگر فقط یکی از اون آیتم باشه پاسخ true میشه.🪴🌴
(یه مثال از کاربردش در مبحث سطوح دسترسی میتونه باشه.)
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/OussamaMater/status/1774534728713908404?t=53_Nco2oPHG1m4gBU75WmQ&s=35
👍4
با استفاده از متود ()except میتونیم یک عنصر یا یه آرایه رو از دیتای session حذف کنیم،
حالا کجاها کاربرد داره؟
یه جاهایی ممکنه فقط پسورد رو نخوایم بفرستیم(بنا بر دلایل امنیتی)، خب اینجور جاها خیلی این متود کاربرد داره...
در مثال زیر وقتی خروجی بگیریم، name حذف شده (همونطور که تعیین کرده) و باقیه اطلاعات موجود خواهند بود
@GoldenCodeir
(به منبع و مثالش دقت کنین 👇🏾)
https://x.com/iamgurmandeep/status/1745407710492016867?t=p4n1JqewzD5lrq9rusl8Xg&s=35
👍41
در لاراول ۱۱ اگه قصد داشته باشین با آرایه های چند بعدی کار کنین علاوه بر همون هلپر collect که از ورژن های پیشین در اختیارتون بود میتونین از هلپر fluent هم استفاده کنین.
کار با هلپر fluent نسبت به collect میشه گفت راحت تره(از لحاظ دسترسی به دیتای آرایه) به مثال توجه کنین و تفاوت واضح fluent و collect رو مشاهده کنین...🪴🌴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/MilwadDev/status/1775618875473727968?t=WgqvC-fxB0RDgC-v4NI9yg&s=35
👍7🔥3
در نسخه ۱۱ لاراول اگه نیاز به بررسی دیتای session داشته باشیم میتونیم خیلی راحت با متود ()hasAny عملیات مربوطه رو انجام بدیم...✔️
مستقیم با یک hasAny میتونیم آیتم های مدنظرُ مشخص کنیم(نیازی به کدای تکراری نیست) خودش متوجه میشه هرکدوم از آیتم ها که true شد باید عملیات مربوطه انجام شه🪴🌴

ما کافیه آیتم های مدنظرمونو بصورت آرایه مشخص کنیم
@GoldenCodeir
به منبع و مثالش توجه کنین👇🏾
https://twitter.com/MilwadDev/status/1776754258525704363?t=DEOQFvK89Eh058peKNTlmQ&s=19
👍5🔥1
از عبارت match میتونیم برای پیاده سازیه منطق های شرطیه تمیز تر بهره ببریم.
در مثال زیر، اگه مقدار status$ با هیچکدوم از الگو هایی که داریم مطابقت نداشته باشه همون حالت دیفالت اجرا خواهد شد .
این عبارت از نسخه ۸ php در دسترسه.🪴🌴
@GoldenCodeir
(پیچیدگیه خاصی هم نداره،به منبع و مثالش توجه کنین👇🏾)
https://x.com/laravelbackpack/status/1777660236398244260?t=LpLUOgmUyjt-sY58J0d3cw&s=35
👍7🔥2
در php این قابلیت در اختیارمون هست که حتی از ()str_replace جهته جایگزین کردنه چندین رشته در یه جمله استفاده کنیم.
اگر ترتیب رو در آرایه اشتباه وارد کنیم ،خروجی هم تحت تاثیر اشتباه قرار میگیره پس باید به ترتیبشون توجه داشت!🪴🌴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/PovilasKorop/status/1775131825788112926?t=sAYUqvuOnFg0ZgdrDdruKg&s=35
3👍1🔥1
"احتمالن میدونین کوئری هایی که نیاز به بررسی ستون هایی با جنس string دارن همیشه از ستون های integer کند ترن. (حتی زمانی که index میشن)‌.

برای جدولای بزرگتر، استفاده از integer در دیتابیس و نمایششون با استفاده از enum های استاندارد در کد میتونه تفاوت واضحی در عملکرد ایجاد کنه برامون.✔️

بطور خلاصه استفاده از enum علاوه بر تاثیر مثبت بر clean code در بهبود سرعت کوئری هم تاثیرش رو میزاره"🪴🌴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/mattkingshott/status/1768275896882868533?t=zHeJDy1eF7ZPiqpDu4vX3Q&s=35
👍82
"از متود createRandomStringsUsing میتونین جهت مدیریت نحوه ی ایجاد رشته های رندوم استفاده کنید در لاراول !
بطور خلاصه میتونیم با استفاده از این متود مشخص کنیم تا در هنگام خروجی گرفتن از ()random جزئیات چگونه برامون return بشه.✔️
الان در مثال زیر خروجی برابر با " !Laravel" خواهد شد(همونطور که تعیین شده).
همچنین طول رشته رو هم تعیین کنیم.
کجاها کاربرد داره؟
تستینگ ،ایجاد پسورد، کلید api و..."🪴🌴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://twitter.com/AshAllenDesign/status/1778785643558322323?t=ARVVMJNWmAPOuW3miKx9yA&s=19
👍41
در php میتونیم از علمگر null-safe برای برای دسترسی به فیلد ها یا فراخوانیه متود ها جهته تشخیص null بودن یا نبودنه انها استفاده کنیم .

به تصویر توجه کنین:
اگه تاریخش و متود format برامون return بشه که عملیات به درستی انجام میشه ولی اگه getPublishedDate مقدارش null بشه خطایی رخ نمیده و فقط null به عنوان مقدار قرار میگیره.🪴🌴

از ورژن php 8 قابل استفادس
@GoldenCodeir
(به مثال و منبعش دقت کنین👇🏾)
https://twitter.com/AshAllenDesign/status/1779150799316390100?t=wLJ9oYvJBl7SNWCFnF28Pw&s=19
👍4🔥1
در لاراول هنگام تعریف کردن gate ها یا policy هامون به دلایل مباحث امنیتی در بیشتر مواقع بجای retuen‌ کردنه 403(نداشتن اجازه دسترسی) انتخابمون 404 هستش ...
لاراول متود ()denyAsNotFound رو برای این منظور در اختیارمون قرار داده، طرز کارش هم خیلی سادس و کافیه به مثالش توجه کنین🪴🍀
(ورژن ۱۱)
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1780323357575029099?s=09
👍7👌2
متود ()whereAny که از نسخه ۱۰ لاراول در دسترسه باعث میشه بتونیم در هنگام search برای چند ستونه مختلف محدودیته مدنظر رو اعمال کنیم.

به مثال دوم دقت کنین، سه فیلتره مجزا برای ستون های email, name, phone تعیین شده پس باید کاربری که یکی از این سه فیلتر براش صادق هست برگرده و دیگه محدود به ایجاد صرفا یک فیلتر‌ نیستیم .
قبلن پیاده سازیه همچین چیزی پیچیده تر بود🪴🌴
@GoldenCodeir
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/_newtonjob/status/1781091928043393044?t=n1HoCY85zReXe1Qc6gO4mw&s=35
👍42
ممکنه در فرایند برنامه نویسی یه ریلیشن رو بارها تکرار کرده باشیم (اما هر دفعه تحت شرایط متفاوتی مثل فیلتر کردن یا مرتب سازی یا... ) خب درین شرایط روش بهینه تری هم هست!(گیج نشین لطفا😁)

در مثال زیر یه متود ایجاد شده در مدل تا دیگه هر موقع نیاز داشتیم به همچین دیتایی به راحتی با کمترین کد و با استفاده از متودی که ساختیم،دسترسی داشته باشیم به کامنت های تایید شده.🪴🌴

خب این حرکت میتونه در مبحث کلین کد تاثیر خوبی بزاره و از نوشتن کدای تکراری جلوگیری کنه‌.
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://twitter.com/PovilasKorop/status/1781620075058860184?t=0vCorvEo6gM_ITbKOpWWnw&s=19
👍9
اگر میخواین دیتای یک ریلیشن رو بگیرین میتونین محدودیتا یا order هایی که نیاز دارین در پروژه رو داخل یک ()closure function مشخص کنید.

برای مثال اگه بخواین کشورهای موجود در دیتابیسُ با بزرگترین شهرهاشون رو بگیرین باید طبق مثال زیر عمل کنید که اومده توسط orderBy تعیین کرده برچه اساسی و چگونه city رو تحویلمون بده🪴🌴

@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://twitter.com/PovilasKorop/status/1781982461200642165?s=19
👍5
Forwarded from یک برنامه نویس تنبل (Raymond Dev)
🔶 در لاراول ۱۱ برخی از فایل های اضافی حذف شدند و زیرا استفاده چندانی نمی شدند که حداقل از شلوغی آن کاسته بشه اما لاراول این فایل ها را نادیده نمی گیرد و بلکه به برنامه نویس اجازه می دهد با دستورات زیر فایل های که نیاز دارند را ایجاد کند.

دستوراتی که لاراول ۱۱ در آن آمده است:

php artisan install:api
php artisan config:publish cors
php artisan install:broadcasting
php artisan make:provider
php artisan make:class
php artisan make:enum
php artisan make:interface
php artisan make:trait


#لاراول

@TheRaymondDev
👍8
میتونیم از متود ()whereBetween جهت دریافته رکورد های موجود میان دو timeStamps بهره ببریم ...✔️
خب بریم ببینیم یعنی چی؟

📌 به مثالش توجه کنین، در اینجا باید خروجی ای که برمیگرده نتایج تسک های انجام شده(completed_at) بین دو بازه ی زمانی مشخص شده باشه.
اگه در آرایه مقدار های اول null بشن بخش دومش برمیگرده ،طبق‌قوانین coalescing null - ??

@GoldenCodeir
(به‌منبع و مثالش دقت کنید👇🏾)
https://twitter.com/laravelbackpack/status/1783096059981639914?t=9Whyo2saNcER0WfmwXLXzg&s=19
👍31
Forwarded from آموزش لاراول | LaravelHub (M.S.I.C.W ️️(VaKeR) 775)
سلام وقت بخیر امروز اومدم بهتون بگم چطوری یه فایل رو در php بتونیم ZIP کنیم.

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();

🔥⚡️ کانال آموزشی LaravelHub
@LaravelHub
👍3🤡1