در استفاده از روابط ()hasMany میشه چگونگیه استخراج اطلاعات رو مشخص کرد.
برای دریافت اطلاعات بر اساس تاریخ میتونیم از oldestOfMany (اولین دیتای ذخیره شده) و latestOfMany (اخرین دیتای ذخیره شده) استفاده کنیم.🪴🌴
همچنین با استفاده از ofMany در استخراج دیتا میتونیم بر نتایج موجودی که فیلتر براشون تعیین کردیم، یه فیلتر دلخواه دیگه هم مشخص کنیم(مثلا مرتب سازیه اطلاعات دریافت شده بر اساس تاریخ یا...) !
@GoldenCodeir
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/laravelbackpack/status/1784545611150455128?s=35
برای دریافت اطلاعات بر اساس تاریخ میتونیم از oldestOfMany (اولین دیتای ذخیره شده) و latestOfMany (اخرین دیتای ذخیره شده) استفاده کنیم.🪴🌴
همچنین با استفاده از ofMany در استخراج دیتا میتونیم بر نتایج موجودی که فیلتر براشون تعیین کردیم، یه فیلتر دلخواه دیگه هم مشخص کنیم(مثلا مرتب سازیه اطلاعات دریافت شده بر اساس تاریخ یا...) !
@GoldenCodeir
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/laravelbackpack/status/1784545611150455128?s=35
X (formerly Twitter)
Backpack for Laravel (@laravelbackpack) on X
#Laravel Tip
Laravel has oldestOfMany(), newestOfMany() and ofMany(), that you can use on a hasMany relationship.
Laravel has oldestOfMany(), newestOfMany() and ofMany(), that you can use on a hasMany relationship.
👍5🤡1
وقتی یک کاربر پسوردش رو تغییر میده از لحاظ امنیتی خب قطعا بهتره api token هم برای کاربر تغییر کنه.
بطور خلاصه با استفاده از متود mutator میتونیم پیش از ذخیره سازی در دیتابیس همچین عملیاتی رو انجام بدیم . (ایجاد تغییراتی دلخواه در دیتای ورودی پیش از ذخیره سازی).🪴🌴
@GoldenCodeir
برای درک بهتر به منبع و مثالش دقت کنید👇🏾)
https://twitter.com/laravelbackpack/status/1785270384293802014?s=19
بطور خلاصه با استفاده از متود mutator میتونیم پیش از ذخیره سازی در دیتابیس همچین عملیاتی رو انجام بدیم . (ایجاد تغییراتی دلخواه در دیتای ورودی پیش از ذخیره سازی).🪴🌴
@GoldenCodeir
برای درک بهتر به منبع و مثالش دقت کنید👇🏾)
https://twitter.com/laravelbackpack/status/1785270384293802014?s=19
X (formerly Twitter)
Backpack for Laravel (@laravelbackpack) on X
#Laravel Tip
When a user updates their password, it's more secure to also change the API Token - right?
Here's how to quickly do it via mutator:
When a user updates their password, it's more secure to also change the API Token - right?
Here's how to quickly do it via mutator:
❤2🤡1
Forwarded from CleverDevs (Mammad)
-اصل Command Query Separation در کلین کد
این اصل میگه تابع شما یا باید کاری انجام بده یه به سوالی جواب بده اگه هردوتاش رو میکنه بدون که اشتباه میزنی مثلا یه تابع باید یه چیزی رو تو ابجکتی تغییر بده یا یه اطلاعاتی بگیره ازش اگه جفت کار هارو بکنه یکم گیج کننده میشه
مثلا این مثال رو در نظر بگیرید
این کد میاد به یه اتریبیوتی مقداری رو ست میکنه و اگه موفقیت امیز بود ture بر میگردونه و اگه مشکل داشت false میده حالا اگه بیایم اینو توی شرط استفاده کنیم
از نگاه خواننده کد ببینید : «این الان چک میکنه که یوزر نیم unclebob از قبل ست شده یا داره چک میکنه »
کلمه set یه فعله ولی وقتی توی شرط استفاده شده قید بنظر میاد و باعث نامفهموم شدن کد میشه
میتونیم به جای set از setAndCheckIfExists استفاده کنیم اما بازم ممکنه برای if statement جالب نباشه بهترین کار اینه که یچیزی مث کد زیر بزنیم :
خلاصه این اصل این بود که تابعتون نباید هم کاری انجام بده هم چیزی بر گردونه
#CleanCode
@CleverDevs - @CleverDevsGp
این اصل میگه تابع شما یا باید کاری انجام بده یه به سوالی جواب بده اگه هردوتاش رو میکنه بدون که اشتباه میزنی مثلا یه تابع باید یه چیزی رو تو ابجکتی تغییر بده یا یه اطلاعاتی بگیره ازش اگه جفت کار هارو بکنه یکم گیج کننده میشه
مثلا این مثال رو در نظر بگیرید
public boolean set(String attribute, String value);
این کد میاد به یه اتریبیوتی مقداری رو ست میکنه و اگه موفقیت امیز بود ture بر میگردونه و اگه مشکل داشت false میده حالا اگه بیایم اینو توی شرط استفاده کنیم
if (set("username", "CleverDevs"))...از نگاه خواننده کد ببینید : «این الان چک میکنه که یوزر نیم unclebob از قبل ست شده یا داره چک میکنه »
کلمه set یه فعله ولی وقتی توی شرط استفاده شده قید بنظر میاد و باعث نامفهموم شدن کد میشه
میتونیم به جای set از setAndCheckIfExists استفاده کنیم اما بازم ممکنه برای if statement جالب نباشه بهترین کار اینه که یچیزی مث کد زیر بزنیم :
if (attributeExists("username")) {
setAttribute("username", "CleverDevs");
x...
}خلاصه این اصل این بود که تابعتون نباید هم کاری انجام بده هم چیزی بر گردونه
#CleanCode
@CleverDevs - @CleverDevsGp
👍5🔥1🤡1
Forwarded from CleverDevs (Mammad)
ممکنه بخواید سایتی بنویسید و نیاز باشه که توش عبارت های ریاضی رو نمایش بدید . برای اینکار میتونید از کتابخونه KaTex توی جاوا اسکریپت استفاده کنید
این کتابخونه به شما امکان اینو میده که از بیشتر دستورالعمل های Latex استفاده بکنید و توی وب و با استفاده از جاوا اسکریپت عبارت های ریاضی رو نمایش بدید
استفاده ازش خیلی اسونه و میتونید تو گیت هاب یا داکیومنت خود katex ببینیدش همینطور میتونید به صورت لایو تو سایت KaTex عبارتتون رو بنویسید و نتیجه رو ببینید
https://katex.org/
همونطور که گفتم بیشتر دستورالعمل های LaTex رو پشتیبانی میکنه و میتونید خیلی راحت دستورالعمل عبارتی که میخواید رو از گوگل پیدا کنید و استفاده کنید یه فایل هم شامل همه دستورالعمل های LaTex رو توی کامنت ها میفرستم که اگه خواستید سیوش کنید موقع نیاز ازش استفاده کنید
#tools #Math #Latex #KaTex
@CleverDevs - @CleverDevsGp
این کتابخونه به شما امکان اینو میده که از بیشتر دستورالعمل های Latex استفاده بکنید و توی وب و با استفاده از جاوا اسکریپت عبارت های ریاضی رو نمایش بدید
استفاده ازش خیلی اسونه و میتونید تو گیت هاب یا داکیومنت خود katex ببینیدش همینطور میتونید به صورت لایو تو سایت KaTex عبارتتون رو بنویسید و نتیجه رو ببینید
https://katex.org/
همونطور که گفتم بیشتر دستورالعمل های LaTex رو پشتیبانی میکنه و میتونید خیلی راحت دستورالعمل عبارتی که میخواید رو از گوگل پیدا کنید و استفاده کنید یه فایل هم شامل همه دستورالعمل های LaTex رو توی کامنت ها میفرستم که اگه خواستید سیوش کنید موقع نیاز ازش استفاده کنید
#tools #Math #Latex #KaTex
@CleverDevs - @CleverDevsGp
👍6❤3🔥2🤡1
ممکنه گاهی نیاز داشته باشین یه دسته از رکورد هارو آپدیت کنین یا در صورت عدم وجود ایجادشون کنین !
لاراول متودی تحت عنوان ()upsert در اختیارتون گذاشته که دقیقا همینکارو براتون انجام میده✔️
در مثال زیر قیمته همه رکوردهای اشاره شده برای مدل Flight بروزرسانی یا ساخته خواهند شد.
مثلن در آرایه اول توجهکنین، پرواز از مبدا و مقصد تعیین شده رو با قیمت ۹۹ دلار بروزرسانی میکنه(در صورت عدم وجود : میسازتش با مشخصاتی که مشخص کردیم)
📌 این uniqueBy چه نقشی داره؟
بطور خلاصه باعث میشه از پدید آمدن رکوردهای تکراری جلوگیری بشه. 🌴🪴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://twitter.com/OussamaMater/status/1785770546891768004?s=19
لاراول متودی تحت عنوان ()upsert در اختیارتون گذاشته که دقیقا همینکارو براتون انجام میده✔️
در مثال زیر قیمته همه رکوردهای اشاره شده برای مدل Flight بروزرسانی یا ساخته خواهند شد.
مثلن در آرایه اول توجهکنین، پرواز از مبدا و مقصد تعیین شده رو با قیمت ۹۹ دلار بروزرسانی میکنه(در صورت عدم وجود : میسازتش با مشخصاتی که مشخص کردیم)
📌 این uniqueBy چه نقشی داره؟
بطور خلاصه باعث میشه از پدید آمدن رکوردهای تکراری جلوگیری بشه. 🌴🪴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://twitter.com/OussamaMater/status/1785770546891768004?s=19
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: The "upsert" Method
Sometimes you may wish to update a bunch of records or create them if they do not exist. Laravel ships with a cool method "upsert" to do exactly that 🚀
#laravel
Sometimes you may wish to update a bunch of records or create them if they do not exist. Laravel ships with a cool method "upsert" to do exactly that 🚀
#laravel
👍2❤1🤡1
Forwarded from Python Everywhere
React or Vue ?
دو فریم ورک محبوب جاوا اسکریپت برای طراحی رابط کاربری و تعاملی Front-End؛
-تفاوت ها :
فریمورک React از قالب Jsx برای نوشتن کد های Html استفاده میکنه درحالی که Vue از کد های Html پشتیبانی میکنه و گزینه ای برای نوشتن بصورت Jsx هم داره.
🖼️ از طرف دیگه ریاکت از دقت و سرعت کمی بیشتری برخورداره و البته درک React برای کسی که به جاوا اسکریپت کامل مسلط نیست کمی سخت تره.
از طرف دیگه Vue یه فریم ورک کاملا سبک و با سرعت خوبه که با توجه به سیستم DOM که کاملا شبیه به فریمورک angular هستش و همچنین استفاده از کد های Html یادگیری خیلی سریع و آسون رو به همراه میاره.
-مفهوم DOM چیه؟
یک رابط برنامه نویسی (API) برای جاوا اسکریپت که برای تعامل توی وبسایت استفاده میشه.
بزارید ساده توضیح بدم، فرض کنید توی یه وبسایت میخواید با فشردن یه دکمه پیامی نمایش داده بشه و چیزی تغییر کنه.
تمام این تغییر ها نیازمند این هستن که تگ های Html و کد های Css بصورت مداوم بروزرسانی بشن و به عبارتی تغییر کنن.
درحالت عادی تغییر کد های html/css بصورت در لحظه و به دست کاربر ممکن نیست.
اینجاست که DOM با استفاده از یه سیستم درختی مانند، میاد و تمام عناصر (تگ ها) HTML رو تبدیل به اشیاء (Object) میکنه.
حالا عناصر سایتتون به راحتی قابل تغییر، حذف و اضافه شدن هستن!
بنابراین کاری که سیستم DOM انجام میده اینه که به شما اجازه میده کد های وبسایت تون در لحظه تغییر کنن و حذف یا اضافه بشن.
حالا میتونید درک کنید که چرا فریم ورک هایی مثل Vue.js و React.js از این سیستم استفاده میکنن تا رابط کاربری و تعامل بین سایت و کاربر ایجاد کنن.
🖼️ مزایای Vue.js :
• یاد گیری سریع و آسان
• سبک و سرعت بالا
• درحال رشد و دارای انجمن های مختلف
🖼️ معایب Vue.js :
• تجربه و حضور کمتر در عرصه
• چینی زبان بودن برخی افزونه و ابزار ها
• آیندهی نامشخص و متخصص های کمتر
🖼️ مزایای React.js :
• حضور قدرتمند و تقاضای زیاد
• سرعت بالای توسعه
• ابزار های بسیار زیاد
🖼️ معایب React.js :
• یادگیری سخت
• استفاده از Jsx
جمع بندی
درکل اگه طراح وبسایت تازه کار هستید میتونید برای پروژه های ساده/متوسط و حتی پیچیده از Vue.js استفاده کنید. چرا که یادگیری این فریم ورک خیلی آسون و سریع رقم میخوره درحالی که برای پروژه هایی با مقیاس بزرگ اطمینانی بهش نیست و بهتره که برید سراغ React
دو فریم ورک محبوب جاوا اسکریپت برای طراحی رابط کاربری و تعاملی Front-End؛
-تفاوت ها :
فریمورک React از قالب Jsx برای نوشتن کد های Html استفاده میکنه درحالی که Vue از کد های Html پشتیبانی میکنه و گزینه ای برای نوشتن بصورت Jsx هم داره.
از طرف دیگه Vue یه فریم ورک کاملا سبک و با سرعت خوبه که با توجه به سیستم DOM که کاملا شبیه به فریمورک angular هستش و همچنین استفاده از کد های Html یادگیری خیلی سریع و آسون رو به همراه میاره.
-مفهوم DOM چیه؟
یک رابط برنامه نویسی (API) برای جاوا اسکریپت که برای تعامل توی وبسایت استفاده میشه.
بزارید ساده توضیح بدم، فرض کنید توی یه وبسایت میخواید با فشردن یه دکمه پیامی نمایش داده بشه و چیزی تغییر کنه.
تمام این تغییر ها نیازمند این هستن که تگ های Html و کد های Css بصورت مداوم بروزرسانی بشن و به عبارتی تغییر کنن.
درحالت عادی تغییر کد های html/css بصورت در لحظه و به دست کاربر ممکن نیست.
اینجاست که DOM با استفاده از یه سیستم درختی مانند، میاد و تمام عناصر (تگ ها) HTML رو تبدیل به اشیاء (Object) میکنه.
حالا عناصر سایتتون به راحتی قابل تغییر، حذف و اضافه شدن هستن!
بنابراین کاری که سیستم DOM انجام میده اینه که به شما اجازه میده کد های وبسایت تون در لحظه تغییر کنن و حذف یا اضافه بشن.
حالا میتونید درک کنید که چرا فریم ورک هایی مثل Vue.js و React.js از این سیستم استفاده میکنن تا رابط کاربری و تعامل بین سایت و کاربر ایجاد کنن.
• یاد گیری سریع و آسان
• سبک و سرعت بالا
• درحال رشد و دارای انجمن های مختلف
• تجربه و حضور کمتر در عرصه
• چینی زبان بودن برخی افزونه و ابزار ها
• آیندهی نامشخص و متخصص های کمتر
• حضور قدرتمند و تقاضای زیاد
• سرعت بالای توسعه
• ابزار های بسیار زیاد
• یادگیری سخت
• استفاده از Jsx
جمع بندی
درکل اگه طراح وبسایت تازه کار هستید میتونید برای پروژه های ساده/متوسط و حتی پیچیده از Vue.js استفاده کنید. چرا که یادگیری این فریم ورک خیلی آسون و سریع رقم میخوره درحالی که برای پروژه هایی با مقیاس بزرگ اطمینانی بهش نیست و بهتره که برید سراغ React
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2❤🔥1🤡1
وقتی باید از whereIn استفاده کنیم در پروژه و ورودی از کاربر نداریم درین شرایط میتونیم برای افزایش سرعت کوئری از یه متود دیگه با نام ()WhereIntegerInRaw هم استفاده کنیم.✔️
حالا چرا این متود باعث افزایش سرعت میشه؟؟
چون میاد و PDO bindings و اقدامات امنیتی که مربوط به خود لاراول هستن رو نادیده میگیره :)
@GoldenCodeir 💫
به منبع و مثالش دقت کنین👇🏾
https://twitter.com/OussamaMater/status/1785045623382610233?t=ytMU5-dp7lqeeqi1D9A47w&s=19
حالا چرا این متود باعث افزایش سرعت میشه؟؟
چون میاد و PDO bindings و اقدامات امنیتی که مربوط به خود لاراول هستن رو نادیده میگیره :)
@GoldenCodeir 💫
به منبع و مثالش دقت کنین👇🏾
https://twitter.com/OussamaMater/status/1785045623382610233?t=ytMU5-dp7lqeeqi1D9A47w&s=19
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Faster Queries with "whereIntegerInRaw"
When using a whereIn query with non-user input, opt for whereIntegerInRaw. This speeds up your query by skipping PDO bindings and Laravel's security measures against SQL injection 🚀
#laravel
When using a whereIn query with non-user input, opt for whereIntegerInRaw. This speeds up your query by skipping PDO bindings and Laravel's security measures against SQL injection 🚀
#laravel
👍4👌1🤡1
Forwarded from دارا وب - تحقیق و توسعه در دنیای دیجیتال
🔸 جلسه هشتم نکات مدیریت فروشگاه اینترنتی
فروش اینترنتی دیگه مثل قبل نیست
کلمات کلیدی درست
زنگ خور زیاد و فروش کم
و...
🆔 @daraweb_channel
فروش اینترنتی دیگه مثل قبل نیست
کلمات کلیدی درست
زنگ خور زیاد و فروش کم
و...
🆔 @daraweb_channel
🤡1
در لاراول چجوری میشه ستون number رو با استفاده از مایگریشن به جدول users اضافه کنیم؟
Anonymous Quiz
13%
php artisan make: migrate create_number_to_users_table --table=users
23%
php artisan make: migrate add_number_to_users_table --table=users
58%
php artisan make: migration add_number_to_users_table --table=users
5%
php artisan make: migration rollback_number_to_users_table --table=users
👍6❤2🔥1🤡1
Forwarded from Deep Devs | فرانت اند | بک اند | جاوااسکریپت | برنامه نویسی | برنامه نویسی وب (Ali)
♨️ آیا کار کردن با webpack براتون سخته؟ راه حل مشکل شما Laravel-Mix اینجاست
ما توی پست قبلی فهمیدیم که Webpack چیه و به چه دردی میخوره ولی یکی از معایب وبپک کانفیگ نسبتا پیچیده و سختی کار با اون هست که شاید افراد مبتدی رو سردرگم و از خودش دور کنه.
برای کسایی که نمیخوان با کانفیگ پیچیده webpack برای پروژه بزرگ و کوچیکشون دست و پنجه نرم کنند Laravel-mix میتونه گزینه عالی باشه
این ابزار خودش از webpack استفاده میکنه ولی کانفیگ هاشو توی پس زمینه انجام داده و یه محیط و کانفیگ خیلی خیلی ساده و در عین حال کاربردی داره.
توصیه میکنم روی یکی از پروژه های آینده تون امتحانش کنید...👌
🌐 https://laravel-mix.com
#Tools
Channel | Group | YouTube
ما توی پست قبلی فهمیدیم که Webpack چیه و به چه دردی میخوره ولی یکی از معایب وبپک کانفیگ نسبتا پیچیده و سختی کار با اون هست که شاید افراد مبتدی رو سردرگم و از خودش دور کنه.
برای کسایی که نمیخوان با کانفیگ پیچیده webpack برای پروژه بزرگ و کوچیکشون دست و پنجه نرم کنند Laravel-mix میتونه گزینه عالی باشه
این ابزار خودش از webpack استفاده میکنه ولی کانفیگ هاشو توی پس زمینه انجام داده و یه محیط و کانفیگ خیلی خیلی ساده و در عین حال کاربردی داره.
توصیه میکنم روی یکی از پروژه های آینده تون امتحانش کنید...👌
🌐 https://laravel-mix.com
#Tools
Channel | Group | YouTube
👍2❤1🤡1
Forwarded from کداکسپلور | CodeExplore (CodeExplore)
1. اصل مسئولیت واحد (SRP): هر کلاس فقط باید یک کار انجام بده. مثلاً اگه یه کلاسی داریم برای مدیریت کاربرا، فقط باید کارای مربوط به کاربرا رو انجام بده، نه اینکه بره سراغ مدیریت سفارشات یا محصولات.
2. اصل باز – بسته (OCP): کلاسها باید طوری طراحی بشن که بشه روشون اضافه کرد، ولی نباید نیاز باشه که خودشون رو عوض کنیم.
3. اصل جایگزینی لیسکوف (LSP): اگه یه کلاسی از یه کلاس دیگه ارث بری کرده، باید بتونیم اون کلاس رو جایگزین کلاس اصلی کنیم بدون اینکه مشکلی پیش بیاد.
4. اصل جداسازی رابط (ISP): هر کلاس فقط باید به اون قسمتهایی از یه رابط که استفاده میکنه وابسته باشه، نه به تمام رابط.
5. اصل وارونگی وابستگی (DIP): کلاسها باید به ایدهها وابسته باشن، نه به جزئیات. یعنی باید به چیزایی که میخوان انجام بدن فکر کنن، نه اینکه چطوری اون کارو انجام میدن.
این اصول کمک میکنن که کدی بنویسیم که بتونیم راحتتر مدیریتش کنیم، بفهمیمش و تستش کنیم.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2🤡1
Forwarded from قالب و افزونه وردپرس
↩️ وبسایتهایی که هاستینگ پروژه رو کاملاً رایگان انجام میدن :
Netlify
Firebase
AWS
Heroku
Github Pages
Vercel
Surge
Render
Gitlab Pages
Stormkit
با استفاده از این هاستهای رایگان میتونی سایت خودت رو به صورت آزمایشی بیاری بالا و از همه لحاظ بررسی و عیب یابیش کنی.
علاوه بر اون اگه برنامه نویسی و کارفرما میخواد پیشرفت توسعهی سایت رو ببینه، میتونید پروژه رو روی این هاستها دیپلوی کنید و براش بفرستین.
➖➖➖➖➖➖➖➖➖
🆔 @ghaleb_fre
🆔 @cht_romm
Netlify
Firebase
AWS
Heroku
Github Pages
Vercel
Surge
Render
Gitlab Pages
Stormkit
با استفاده از این هاستهای رایگان میتونی سایت خودت رو به صورت آزمایشی بیاری بالا و از همه لحاظ بررسی و عیب یابیش کنی.
علاوه بر اون اگه برنامه نویسی و کارفرما میخواد پیشرفت توسعهی سایت رو ببینه، میتونید پروژه رو روی این هاستها دیپلوی کنید و براش بفرستین.
➖➖➖➖➖➖➖➖➖
🆔 @ghaleb_fre
🆔 @cht_romm
👍4❤2🔥1🤡1
اگه تعداد زیادی singletone در پروژه دارین، میتونین حتی اونارو به صورت آرايه singletones$ در کلاس service provider اضافه کنین.
توضیح کلی این نوع ترفند :
با اینکار یه نمونه از هر سرویس فقط یه بار ایجاد میشه و سپس در بقیه بخشا قابل دسترسیه.
📌 برخی از مزایای این نوع ساختار:
مدیریت و پیکربندی و اعمال تغییرات بصورت مرکزی انجام میشه، پس مدیریت پروژه رو ساده میکنه.
✔️ تاثیر مثبت بر کلین کد و قابل فهم تر شدن کد.
✔️ در مبحث تست نویسی هم کارو راحت تر میکنه واسمون وقتی در یه کلاس تعریف میشن.
✔️ بر performance هم تاثیر مثبتش رو میزاره. چجوری ؟
در حالته عادی وقتی هر بار که شما یه سرویس رو میخواین استفاده کنین یه نمونه جدید ازش ساخته میشه اما در همچین ساختاری خیر! 🪴🌴
@GoldenCodeir
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/_newtonjob/status/1787742606476140757?t=M3Op6_XeRtCrp18ebigqug&s=35
توضیح کلی این نوع ترفند :
با اینکار یه نمونه از هر سرویس فقط یه بار ایجاد میشه و سپس در بقیه بخشا قابل دسترسیه.
📌 برخی از مزایای این نوع ساختار:
مدیریت و پیکربندی و اعمال تغییرات بصورت مرکزی انجام میشه، پس مدیریت پروژه رو ساده میکنه.
✔️ تاثیر مثبت بر کلین کد و قابل فهم تر شدن کد.
✔️ در مبحث تست نویسی هم کارو راحت تر میکنه واسمون وقتی در یه کلاس تعریف میشن.
✔️ بر performance هم تاثیر مثبتش رو میزاره. چجوری ؟
در حالته عادی وقتی هر بار که شما یه سرویس رو میخواین استفاده کنین یه نمونه جدید ازش ساخته میشه اما در همچین ساختاری خیر! 🪴🌴
@GoldenCodeir
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/_newtonjob/status/1787742606476140757?t=M3Op6_XeRtCrp18ebigqug&s=35
X (formerly Twitter)
Newton Job (@_newtonjob) on X
💡If you have many simple singletons in your app, you can easily add them to the $singletons array in any service provider class.
#Laravel
#Laravel
🔥4👍3🤡2❤1
Forwarded from Deep Devs | فرانت اند | بک اند | جاوااسکریپت | برنامه نویسی | برنامه نویسی وب (AmirabaS)
❤3👍2🔥2
در لاراول میتونیم برای شرایطی که یک job از طریق صف اجرا شده و با شکست مواجه شده، میتونیم با استفاده از تعریف متود failed در job عملیات های مربوط به مدیریته خطا و cleanups رو انجام بدیم.
📌 یه سر به طرز کارش هم بزنیم :
میتونیم داخل این متود تعیین کنیم چه رویدادی رخ بده در صورت fail شدن ، مثلا ارسال تیکت به بخش فنی رخ بده یا ثبت اطلاعات در لاگ ، تغییر مجدد status هایی که تغییر کردن و ...🪴🌴
#laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://twitter.com/OussamaMater/status/1788299342299763113?s=19
📌 یه سر به طرز کارش هم بزنیم :
میتونیم داخل این متود تعیین کنیم چه رویدادی رخ بده در صورت fail شدن ، مثلا ارسال تیکت به بخش فنی رخ بده یا ثبت اطلاعات در لاگ ، تغییر مجدد status هایی که تغییر کردن و ...🪴🌴
#laravel
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://twitter.com/OussamaMater/status/1788299342299763113?s=19
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Clean Up After Failed Jobs
When jobs fail, you may want to send notifications or perform some cleanups. Luckily, Laravel allows you to define a "failed" method to do exactly that 🚀
#laravel
When jobs fail, you may want to send notifications or perform some cleanups. Luckily, Laravel allows you to define a "failed" method to do exactly that 🚀
#laravel
👌4❤1
Forwarded from کداکسپلور | CodeExplore (𔓙)
تا حالا حتما اسم GraphQL و شنیدید ولی دقیقا چه کاربردی داره؟🤔
خب GraphQL یک زبان کوئری اوپنسورس است که از سوی فیسبوک توسعه یافته است. این زبان روشی کارآمد برای طراحی، ایجاد و مصرف API-ها در اختیار ما قرار میدهد و GraphQL اساساً یک جایگزین برای REST محسوب میشود.
برخی از ویژگی های GraphQl🔥
شما دقیقا داده هایی که نیاز دارید و میتونید به دست بیارید. دیگر نیازی به دریافت اطلاعات بیش از حد که در REST مرسوم است نداریم.
زبان GraphQL یک نقطه انتهایی منفرد در اختیار ما قرار میدهد و دیگر نیازی به نسخه 2 یا نسخه 3 برای API یکسان وجود ندارد.
زبان GraphQL دارای «نوعبندی قوی» (strongly-typed) و با استفاده از آن میتوان یک کوئری معتبر درون سیستم نوع GraphQL پیش از اجرا ساخت. GraphQL به ساخت API-های قدرتمند کمک میکند.
پس از این مقدمه کوتاه در مورد GraphQL، دلیل قدرت آن و این که چرا محبوبیت زیادی این روزها کسب کرده است، اگر میخواهید اطلاعات بیشتری در مورد آن کسب کنید، پیشنهاد میکنیم به مستندات موجود در وبسایت آن مراجعه کنید.
#frontend #backend
☕️ @CodeExplore
خب GraphQL یک زبان کوئری اوپنسورس است که از سوی فیسبوک توسعه یافته است. این زبان روشی کارآمد برای طراحی، ایجاد و مصرف API-ها در اختیار ما قرار میدهد و GraphQL اساساً یک جایگزین برای REST محسوب میشود.
برخی از ویژگی های GraphQl
شما دقیقا داده هایی که نیاز دارید و میتونید به دست بیارید. دیگر نیازی به دریافت اطلاعات بیش از حد که در REST مرسوم است نداریم.
زبان GraphQL یک نقطه انتهایی منفرد در اختیار ما قرار میدهد و دیگر نیازی به نسخه 2 یا نسخه 3 برای API یکسان وجود ندارد.
زبان GraphQL دارای «نوعبندی قوی» (strongly-typed) و با استفاده از آن میتوان یک کوئری معتبر درون سیستم نوع GraphQL پیش از اجرا ساخت. GraphQL به ساخت API-های قدرتمند کمک میکند.
پس از این مقدمه کوتاه در مورد GraphQL، دلیل قدرت آن و این که چرا محبوبیت زیادی این روزها کسب کرده است، اگر میخواهید اطلاعات بیشتری در مورد آن کسب کنید، پیشنهاد میکنیم به مستندات موجود در وبسایت آن مراجعه کنید.
#frontend #backend
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2
با استفاده از کلاس Benchmark در لاراول میتونیم زمان اجرای کد های هر بخش رو مشاهده کنیم.
با این ویژگی میتونیم زمان شروع و پایان یه عملیات مدنظرمون رو ثبت کنیم و مدت زمان اجراش رو مورد بررسی قرار بدیم.
قابلیته مفیدی به حساب میاد !
میتونه بهمون برای بهبود علمکرد پروژه (بهبود کد های دارای ضعف و...) کمک کنه.
در کل داشتن آمار و ارقام از چگونگیه عملکرد پروژه میتونه بر روند تصميمگيری برنامه نویس تاثیر مثبتی بزاره... 🪴🌴
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/laravelbackpack/status/1788169492016906319?s=09
با این ویژگی میتونیم زمان شروع و پایان یه عملیات مدنظرمون رو ثبت کنیم و مدت زمان اجراش رو مورد بررسی قرار بدیم.
قابلیته مفیدی به حساب میاد !
میتونه بهمون برای بهبود علمکرد پروژه (بهبود کد های دارای ضعف و...) کمک کنه.
در کل داشتن آمار و ارقام از چگونگیه عملکرد پروژه میتونه بر روند تصميمگيری برنامه نویس تاثیر مثبتی بزاره... 🪴🌴
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/laravelbackpack/status/1788169492016906319?s=09
❤3🔥2👍1👌1
خب بریم یه نگاه به چنتا از ویژگی هایی که blade در اخیتارمون قرار داده و شاید باهاشون اشنا نباشین بندازیم .
(این آپشن ها میتونن در مدیریت اینپوت ها و طراحیشون مطابق با نیازهامون نقش موثری داشته باشن) :
✔️checked
✔️selected
✔️disabled
✔️readonly
✔️required
بریم یه مثال از readonly بزنیم:
یه جاهایی ممکنه نیاز باشه یکی از اطلاعات فرم ،مطابق با خواسته ی ما پر شه و کاربر حق تغییرش رو نداشته باشه.
مثال برای checked:
تعیین مقدار پیشفرض برای یک چک باکس.
( در جایی مثل "تایید شرایط")
📌 نکته امنیتی: برای چیزی مثل required همونطور که مستحضرید نباید صرفا بسنده کرد به کد html و باید سمت سرور هم اعتبار سنجی بشن). 🪴🌴
@GoldenCodeir
#Laravel
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/PovilasKorop/status/1788844182234107945?t=-uMIsLU5NzwyAdXi5sW2Sw&s=35
(این آپشن ها میتونن در مدیریت اینپوت ها و طراحیشون مطابق با نیازهامون نقش موثری داشته باشن) :
✔️checked
✔️selected
✔️disabled
✔️readonly
✔️required
بریم یه مثال از readonly بزنیم:
یه جاهایی ممکنه نیاز باشه یکی از اطلاعات فرم ،مطابق با خواسته ی ما پر شه و کاربر حق تغییرش رو نداشته باشه.
مثال برای checked:
تعیین مقدار پیشفرض برای یک چک باکس.
( در جایی مثل "تایید شرایط")
📌 نکته امنیتی: برای چیزی مثل required همونطور که مستحضرید نباید صرفا بسنده کرد به کد html و باید سمت سرور هم اعتبار سنجی بشن). 🪴🌴
@GoldenCodeir
#Laravel
(به منبع و مثالش توجه کنین👇🏾)
https://x.com/PovilasKorop/status/1788844182234107945?t=-uMIsLU5NzwyAdXi5sW2Sw&s=35
X (formerly Twitter)
Povilas Korop | Laravel Courses Creator & Youtuber (@PovilasKorop) on X
Laravel Blade tip.
5 HTML attributes with conditions - Blade directives you may not know:
- checked
- selected
- disabled
- readonly
- required
Docs: https://t.co/6IyCCHR80s
5 HTML attributes with conditions - Blade directives you may not know:
- checked
- selected
- disabled
- readonly
- required
Docs: https://t.co/6IyCCHR80s
👍3❤2🔥1