𝗛𝗼𝘄 𝗮 𝗦𝗶𝗺𝗽𝗹𝗲 𝗣𝗿𝗼𝗴𝗿𝗮𝗺 𝗥𝘂𝗻𝘀 𝗼𝗻 𝗬𝗼𝘂𝗿 𝗖𝗼𝗺𝗽𝘂𝘁𝗲𝗿: 𝗔 𝗟𝗼𝗼𝗸 𝗮𝘁 𝘁𝗵𝗲 𝗣𝗿𝗼𝗰𝗲𝘀𝘀
THREAD:
https://x.com/chessMan786/status/1928897578688483524
@TheRaymondDev
THREAD:
https://x.com/chessMan786/status/1928897578688483524
@TheRaymondDev
👍1🤯1
🔶 امروز ۲ به روز رسانی بزرگ برای پکیچ های لاراول laravel-package و laravel-slugable توسط مشارکت کننده لاراول ارشیا محمدی منتشر شد.
#لاراول
@TheRaymondDev
#لاراول
@TheRaymondDev
❤2
لیست به روزرسانی های پکیچ لاراول
🔶 نسخه v1.1.0 برای Laravel Package :
Changes :
feat: add modern Laravel package scaffolding with full structure and customization
- Implemented support for facades, service layer, repository pattern, interfaces
- Added event/listener system, notifications, middleware, and artisan commands
- Introduced SymfonyStyle for enhanced CLI UX with confirmation and validation
- Structured project with PSR-4 namespacing and clear separation of concerns
- Enabled stub-based generation with customizable templates and placeholders
- Included 15+ CLI options with --all flag for complete scaffolding
- Added professional structure: README template, MIT license, .gitignore
- Prepared for testing with PHPUnit config, base TestCase, and sample tests
گیت هاب :
https://github.com/LaraPire/laravel-package/releases/tag/v1.1.0
🔶 نسخه v1.1.0 برای Laravel Slugable :
1. Multi-language Support
- Added support for fa (Persian), ar (Arabic), and en (English).
- Properly handles zero-width non-joiners, Tatweel, and script-specific characters.
- Custom regex patterns for each language for accurate slug cleanup.
2. Customization Options
- Set custom slug source and destination fields.
- Specify custom separator (default: -).
- Set maximum length for slugs.
- Force slug regeneration on every save.
- Enable/disable uniqueness check for slugs.
3. Improved Uniqueness Enforcement
- Ensures uniqueness using incremental suffixes (-2, -3, etc.).
- Skips current model record in uniqueness check.
- Supports models using SoftDeletes with optional withTrashed() check.
4. Better Code Structure
- Separated logic into clear, testable methods:
- - generateSlug()
- - convertToSlug()
- - convertNumbers()
- - makeSlugUnique()
- - slugExists()
- - usesSoftDeletes()
- - processLanguageSpecificChars()
- - getCharacterPatternForLanguage()
- - cleanUpSeparators()
- Uses type hinting and default values.
- More readable and maintainable.
5. Compatibility with Route Model Binding
- getRouteKeyName() dynamically returns the slug field used for routing.
گیت هاب :
https://github.com/LaraPire/laravel-slugable/releases/tag/v1.1.0
#لاراول
@TheRaymondDev
🔶 نسخه v1.1.0 برای Laravel Package :
Changes :
feat: add modern Laravel package scaffolding with full structure and customization
- Implemented support for facades, service layer, repository pattern, interfaces
- Added event/listener system, notifications, middleware, and artisan commands
- Introduced SymfonyStyle for enhanced CLI UX with confirmation and validation
- Structured project with PSR-4 namespacing and clear separation of concerns
- Enabled stub-based generation with customizable templates and placeholders
- Included 15+ CLI options with --all flag for complete scaffolding
- Added professional structure: README template, MIT license, .gitignore
- Prepared for testing with PHPUnit config, base TestCase, and sample tests
گیت هاب :
https://github.com/LaraPire/laravel-package/releases/tag/v1.1.0
🔶 نسخه v1.1.0 برای Laravel Slugable :
1. Multi-language Support
- Added support for fa (Persian), ar (Arabic), and en (English).
- Properly handles zero-width non-joiners, Tatweel, and script-specific characters.
- Custom regex patterns for each language for accurate slug cleanup.
2. Customization Options
- Set custom slug source and destination fields.
- Specify custom separator (default: -).
- Set maximum length for slugs.
- Force slug regeneration on every save.
- Enable/disable uniqueness check for slugs.
3. Improved Uniqueness Enforcement
- Ensures uniqueness using incremental suffixes (-2, -3, etc.).
- Skips current model record in uniqueness check.
- Supports models using SoftDeletes with optional withTrashed() check.
4. Better Code Structure
- Separated logic into clear, testable methods:
- - generateSlug()
- - convertToSlug()
- - convertNumbers()
- - makeSlugUnique()
- - slugExists()
- - usesSoftDeletes()
- - processLanguageSpecificChars()
- - getCharacterPatternForLanguage()
- - cleanUpSeparators()
- Uses type hinting and default values.
- More readable and maintainable.
5. Compatibility with Route Model Binding
- getRouteKeyName() dynamically returns the slug field used for routing.
گیت هاب :
https://github.com/LaraPire/laravel-slugable/releases/tag/v1.1.0
#لاراول
@TheRaymondDev
GitHub
Release v1.1.0 · LaraPire/laravel-package
Changes :
feat: add modern Laravel package scaffolding with full structure and customization
Implemented support for facades, service layer, repository pattern, interfaces
Added event/listener sys...
feat: add modern Laravel package scaffolding with full structure and customization
Implemented support for facades, service layer, repository pattern, interfaces
Added event/listener sys...
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from هشتگ تبلیغ تخصصی
💯 مزایای کارآموزی:
💵 دریافت حقوق و بیمه از روز اول
💼 امکان استخدام در بزرگترین شرکتهای شبکه بانک و پرداخت کشور
🧾 ارائه گواهی معتبر در پایان دوره
🏅 کسب تجربه از متخصصان برتر شبکه بانک و پرداخت
🌟 دورههای ۳ ماهه کارآموزی گروه ملی انفورماتیک، فرصتی است برای کسب تجربه و استخدام در بزرگترین شرکتهای شبکه بانک و پرداخت کشور. کارآموزان در طول دوره ضمن دریافت حقوق و بیمه، گواهینامه معتبر دریافت میکنند.
📆 مهلت ثبتنام: تا ۲۶ خرداد ماه ۱۴۰۴
🌟 آکادمی گروه ملی انفورماتیک
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2
Forwarded from mosTafa Arshadi
آخر هفته فقط برای خوابیدن، تفریح کردن و وقت تلف کردن نیست، زمان حسابرسی هم هست. با خودت بی رحمانه و صادقانه خلوت کن و از خودت بپرس که، در هفته ای که گذشت، واقعا چه غلطی کردم؟ چقدر به اهداف بلند مدتم نزدیک تر شدم؟ چه مقدار از زمان با ارزشم رو صرف کارهای احمقانه و بی ارزش کردم؟ اگر از شنیدن جواب این سوال ها میترسی، هفته بدی رو پشت سر گذاشتی و یه فکری برای هفته های اینده باید بکنی.
@hamidreza01
@hamidreza01
👍3
🔥 Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API.
https://www.firecrawl.dev/
github:
https://github.com/mendableai/firecrawl
@TheRaymondDev
https://www.firecrawl.dev/
github:
https://github.com/mendableai/firecrawl
@TheRaymondDev
Forwarded from Golden Code (@lix)
🎯 استفاده از متغیر $loop در حلقههای foreach@ در Laravel Blade
یکی از قابلیتهای قدرتمند و کمتر شناختهشدهی blade وجوده متغیری به نام $loop در هنگام استفاده از دستور foreach@ است. این متغیر بهصورت خودکار و فقط درون حلقه در دسترس قرار میگیره و اطلاعات بسیار مفیدی درباره وضعیت فعلی تکرار حلقه فراهم میکنه.
کاربردهای عملی $loop :
زمانیکه در یک Blade از foreach@ استفاده میکنید، لاراول بطور خودکار یک شیء Loop اختصاصی تولید میکنه که مهم هاشو نوشتم براتون :
🔹 $loop->index
int — شماره اندیس فعلی (از 0 شروع میشه)
🔹 $loop->iteration
int — شماره تکرار (از 1 شروع میشه)
🔹 $loop->count
int — تعداد کل آیتمها در حلقه
🔹 $loop->first
bool — آیا این اولین تکراره؟ (true/false)
🔹 $loop->last
bool — آیا این آخرین تکراره؟ (true/false)
🔹 $loop->remaining
int — چند آیتم دیگه تا پایان حلقه باقی مونده
🔹 $loop->even
bool — آیا تکرار فعلی زوجه؟
🔹 $loop->odd
bool — آیا تکرار فعلی فرده؟
🔹 $loop->depth
int — عمق حلقه (در حلقههای تو در تو)
🔹 $loop->parent
object|null — دسترسی به حلقهی والد در صورت وجود
مثال؟؟
درین مثال از $loop->iteration برای شمارهگذاری استفاده شده.
با $loop->odd استایل متفاوت برای ردیفهای فرد و زوج اعمال شده.
اولین و آخرین محصول با نشان خاصی مشخص شدهاند.
نکات مهم:
این $ loop فقط در Blade و فقط در داخل foreach@ (یا for@) در دسترسه.
اگه حلقههای توو در توو دارید، میتونین از $loop->depth و $loop->parent استفاده کنین.
این قابلیت در Viewها به کاهش پیچیدگی کد و خوانایی بیشتر کمک میکند.
✅ نتیجهگیری
استفاده از $loop در Laravel Blade نهتنها کدنویسی را تمیزتر و خواناتر میکند، بلکه امکاناتی مثل تشخیص اولین یا آخرین آیتم، استایلگذاری زوج و فرد، و شمارنده حلقه را بدون نیاز به تعریف متغیرهای دستی فراهم میکند.
#Laravel
(بهمنبع و مثالش دقت کنید 👇🏾)
@GoldenCodeir
https://x.com/laravelbackpack/status/1929863164302393517?s=35
یکی از قابلیتهای قدرتمند و کمتر شناختهشدهی blade وجوده متغیری به نام $loop در هنگام استفاده از دستور foreach@ است. این متغیر بهصورت خودکار و فقط درون حلقه در دسترس قرار میگیره و اطلاعات بسیار مفیدی درباره وضعیت فعلی تکرار حلقه فراهم میکنه.
کاربردهای عملی $loop :
زمانیکه در یک Blade از foreach@ استفاده میکنید، لاراول بطور خودکار یک شیء Loop اختصاصی تولید میکنه که مهم هاشو نوشتم براتون :
🔹 $loop->index
int — شماره اندیس فعلی (از 0 شروع میشه)
🔹 $loop->iteration
int — شماره تکرار (از 1 شروع میشه)
🔹 $loop->count
int — تعداد کل آیتمها در حلقه
🔹 $loop->first
bool — آیا این اولین تکراره؟ (true/false)
🔹 $loop->last
bool — آیا این آخرین تکراره؟ (true/false)
🔹 $loop->remaining
int — چند آیتم دیگه تا پایان حلقه باقی مونده
🔹 $loop->even
bool — آیا تکرار فعلی زوجه؟
🔹 $loop->odd
bool — آیا تکرار فعلی فرده؟
🔹 $loop->depth
int — عمق حلقه (در حلقههای تو در تو)
🔹 $loop->parent
object|null — دسترسی به حلقهی والد در صورت وجود
مثال؟؟
<ul>
@foreach ($products as $product)
<li class="{{ $loop->odd ? 'bg-light' : 'bg-dark' }}">
{{ $loop->iteration }}. {{ $product->name }}
@if ($loop->first)
<span class="badge">New!</span>
@endif
@if ($loop->last)
<span class="badge">End</span>
@endif
</li>
@endforeach
</ul>
درین مثال از $loop->iteration برای شمارهگذاری استفاده شده.
با $loop->odd استایل متفاوت برای ردیفهای فرد و زوج اعمال شده.
اولین و آخرین محصول با نشان خاصی مشخص شدهاند.
نکات مهم:
این $ loop فقط در Blade و فقط در داخل foreach@ (یا for@) در دسترسه.
اگه حلقههای توو در توو دارید، میتونین از $loop->depth و $loop->parent استفاده کنین.
این قابلیت در Viewها به کاهش پیچیدگی کد و خوانایی بیشتر کمک میکند.
✅ نتیجهگیری
استفاده از $loop در Laravel Blade نهتنها کدنویسی را تمیزتر و خواناتر میکند، بلکه امکاناتی مثل تشخیص اولین یا آخرین آیتم، استایلگذاری زوج و فرد، و شمارنده حلقه را بدون نیاز به تعریف متغیرهای دستی فراهم میکند.
#Laravel
(بهمنبع و مثالش دقت کنید 👇🏾)
@GoldenCodeir
https://x.com/laravelbackpack/status/1929863164302393517?s=35
X (formerly Twitter)
Backpack for Laravel (@laravelbackpack) on X
1/3. Laravel Tip
Did you know... While iterating through a foreach loop, a $loop variable will be available inside of your loop. This variable provides access to some useful bits of information.
More info in the short 🧵👇
Did you know... While iterating through a foreach loop, a $loop variable will be available inside of your loop. This variable provides access to some useful bits of information.
More info in the short 🧵👇
❤2
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🟠 وارد یکی از پردرآمدترین حوزهها شو!
🔸 دیتاساینس یکی از پردرآمدترین حوزههای کاری امروزه که در سراسر جهان خواهان داره.
🔸بوتکمپ دیتاساینس دانشکار طی 6 ماه تو رو وارد بازارکار این حوزه میکنه.
🔻همراه با :
▪️پشتیبانی و منتورینگ تخصصی
▪️مدرک معتبر
▪️اساتید از شرکتهای بزرگ
▪️انجام پروژه واقعی در طول دوره
◀️ برای اطلاعات بیشتر کلیک کن👇
🔗https://dnkr.ir/64rb7
🔗https://dnkr.ir/64rb7
@TheRaymondDev
🔸 دیتاساینس یکی از پردرآمدترین حوزههای کاری امروزه که در سراسر جهان خواهان داره.
🔸بوتکمپ دیتاساینس دانشکار طی 6 ماه تو رو وارد بازارکار این حوزه میکنه.
🔻همراه با :
▪️پشتیبانی و منتورینگ تخصصی
▪️مدرک معتبر
▪️اساتید از شرکتهای بزرگ
▪️انجام پروژه واقعی در طول دوره
◀️ برای اطلاعات بیشتر کلیک کن👇
🔗https://dnkr.ir/64rb7
🔗https://dnkr.ir/64rb7
@TheRaymondDev
❤1
Forwarded from Golden Code (@lix)
خب بریم سراغ مفهوم Isolation (جداسازی) در ACID ✅️
وقتی یک برنامه با دیتابیس کار میکنه ممکنه چندین Transaction بطور همزمان اجرا بشن. هر transaction مجموعهای از عملیات روی دادههاس که باید بصورت یک واحد کامل انجام بشه.
مفهومه Isolation اینه که transaction ها باید بصورت جدا و مستقل از هم اجرا بشن، یعنی طوری که عملیات یک transaction تا قبل از پایان کاملش برای transaction های دیگه قابل مشاهده نباشه.
📌 اصلا چرا Isolation مهمه؟
فرض کنین دو transaction همزمان در حال تغییر اطلاعات یک حساب بانکی هستن:
بر فرض transaction اول: ۱۰۰ هزار تومان از حساب کم کنه.
و transaction دوم: ۵۰ هزار تومان به حساب اضافه کنه.
📌 اگه این transaction ها بدرستی جداسازی نشن چی میشه؟؟
ممکنه مقدار نهایی اشتباه محاسبه بشه، مثلاً چون هر transaction دیتاهای transaction دیگه رو نمیبینه یا به صورت ناقص میبینه.
در نتیجه، Isolation تضمین میکنه که transaction ها به گونهای اجرا بشن که انگار پشت سر هم انجام شدن ودر نتیجه، دیتاهامون بدرستی و بصورت سازگار باقی میمونه .
در عمل، سطحهای مختلفی از Isolation وجود داره (مثل Read Uncommitted، Read Committed، Repeatable Read، Serializable) که کنترل میکنن چقد transaction میتونن تغییرات یکدیگر رو ببینن و تداخل داشته باشن.
⚠️ سطح بالا مثل Serializableحداکثر جداسازی رو تضمین میکنه ولی ممکنه باعث کاهش کارایی بشه!
سطحهای پایینتر سرعت بیشتری دارن ولی ممکنه دیتاهامون به شکل موقت ناسازگار دیده بشن.
#ACID
@GoldenCodeir
وقتی یک برنامه با دیتابیس کار میکنه ممکنه چندین Transaction بطور همزمان اجرا بشن. هر transaction مجموعهای از عملیات روی دادههاس که باید بصورت یک واحد کامل انجام بشه.
مفهومه Isolation اینه که transaction ها باید بصورت جدا و مستقل از هم اجرا بشن، یعنی طوری که عملیات یک transaction تا قبل از پایان کاملش برای transaction های دیگه قابل مشاهده نباشه.
📌 اصلا چرا Isolation مهمه؟
فرض کنین دو transaction همزمان در حال تغییر اطلاعات یک حساب بانکی هستن:
بر فرض transaction اول: ۱۰۰ هزار تومان از حساب کم کنه.
و transaction دوم: ۵۰ هزار تومان به حساب اضافه کنه.
📌 اگه این transaction ها بدرستی جداسازی نشن چی میشه؟؟
ممکنه مقدار نهایی اشتباه محاسبه بشه، مثلاً چون هر transaction دیتاهای transaction دیگه رو نمیبینه یا به صورت ناقص میبینه.
در نتیجه، Isolation تضمین میکنه که transaction ها به گونهای اجرا بشن که انگار پشت سر هم انجام شدن ودر نتیجه، دیتاهامون بدرستی و بصورت سازگار باقی میمونه .
در عمل، سطحهای مختلفی از Isolation وجود داره (مثل Read Uncommitted، Read Committed، Repeatable Read، Serializable) که کنترل میکنن چقد transaction میتونن تغییرات یکدیگر رو ببینن و تداخل داشته باشن.
⚠️ سطح بالا مثل Serializableحداکثر جداسازی رو تضمین میکنه ولی ممکنه باعث کاهش کارایی بشه!
سطحهای پایینتر سرعت بیشتری دارن ولی ممکنه دیتاهامون به شکل موقت ناسازگار دیده بشن.
#ACID
@GoldenCodeir
❤2👍1
Forwarded from DevTwitter | توییت برنامه نویسی
👍1
🔶 حالا که بحث طرح شیشه ای مایع داغه که شروع کننده آن اپل بود, یه طرح شیشه ای با HTML و CSS با کلاد ۴ زدم.
جهت یاد آوری اولین طرح شیشه ای که مطرح شد مال ویندوز ویستا مایکروسافت بود که در مرور زمان با ویندوز ۷ طرح شیشه ای به بلوغ رسید.
گیت هاب :
https://github.com/Rayiumir/liquid-glass
پیش نمایش :
https://rayiumir.github.io/liquid-glass/
@TheRaymondDev
جهت یاد آوری اولین طرح شیشه ای که مطرح شد مال ویندوز ویستا مایکروسافت بود که در مرور زمان با ویندوز ۷ طرح شیشه ای به بلوغ رسید.
گیت هاب :
https://github.com/Rayiumir/liquid-glass
پیش نمایش :
https://rayiumir.github.io/liquid-glass/
@TheRaymondDev
❤2
Forwarded from گنوم فارسی (Revisto)
چرا گنوم به برنامهی مدیریت ترجمههاش میگه «دروغهای ملعون»؟
این عبارت از "Lies, damned lies, and statistics" یا «دروغ، دروغهای ملعون و آمار» میاد که یه نقلقول طنزآمیز از قرن ۱۹ئه.
توی ویکیپدیای این صفحه نوشته شده:
من توضیح خاصی از اینکه چرا این اسم انتخاب شده پیدا نکردم، تنها چیزی که هست توی بخش «درباره» i10n گنوم یه لینک به همین صفحهی ویکیپدیا دادن.
ولی رفتیم توی اتاق i18n ماتریکس گنوم پرسیدیم و الکساندره از دلیل اسم Damned Lies برامون گفته:
@gnome_fa
این عبارت از "Lies, damned lies, and statistics" یا «دروغ، دروغهای ملعون و آمار» میاد که یه نقلقول طنزآمیز از قرن ۱۹ئه.
توی ویکیپدیای این صفحه نوشته شده:
این عبارت توصیفکنندهی قدرت متقاعدکنندهی آمار برای تقویت استدلالهای ضعیف است؛ و بهعنوان یکی از بهترین و شناختهشدهترین نقدهای وارد بر کاربرد آمار یاد میشود.
نمونهای از استفادهٔ زودهنگامتر از این جمله در نامهای به روزنامه National Observer در ۸ ژوئن ۱۸۹۱ دیده میشود، که در آن آمده:
«با شوخطبعی گفتهاند که سه نوع دروغ وجود دارد: نخست، دروغ کوچک (fib)؛ دوم، دروغ آشکار (downright lie)؛ و سوم، و شدیدترین نوع آن، آمار.
من توضیح خاصی از اینکه چرا این اسم انتخاب شده پیدا نکردم، تنها چیزی که هست توی بخش «درباره» i10n گنوم یه لینک به همین صفحهی ویکیپدیا دادن.
ولی رفتیم توی اتاق i18n ماتریکس گنوم پرسیدیم و الکساندره از دلیل اسم Damned Lies برامون گفته:
آمارها واقعاً دروغ هستن، به شکلهای مختلف.
مثلاً اگه نسخهی ۴۸ گنوم توی Damned Lies نشون بده که ۱۰۰٪ به زبان شما ترجمه شده، این لزوما به این معنی نیست که نسخهی ۴۸ای که روی سیستم شما نصبه هم واقعاً ۱۰۰٪ ترجمهشدهست. چون آماری که توی Damned Lies نشون داده میشه، مربوط به وضعیت لحظهای branch ترجمهست، ولی نسخهای که روی سیستم نصب شده در واقع یک اسنپشات (tarball) از یک لحظهی خاص در زمانه.
مثلا نسخهی ۴۸.۱ گنوم در حالی منتشر میشه که ترجمهها ۹۹٪ بودن، و بعد از انتشار، مترجمین ترجمهها رو کامل میکنن. ولی شما اون ترجمههای تکمیلشده رو تا وقتی نسخهی ۴۸.۲ منتشر نشه، دریافت نخواهید کرد.
برعکسش هم ممکنه: یعنی ترجمه موقع انتشار نسخه کامل (۱۰۰٪) بوده، ولی بعد از انتشار، یک freeze exception اتفاق میافته و رشتهی جدیدی به پروژه اضافه میشه. در این صورت، آمار میره روی ۹۹٪، در حالی که نسخهی منتشرشده همچنان ۱۰۰٪ ترجمهشده باقی میمونه.
یا ممکنه شما به یه نسخهی قدیمی گنوم نگاه کنید که دیگه قرار نیست هیچوقت نسخهی جدیدی ازش منتشر بشه. اون نسخه موقع آخرین انتشارش کامل ترجمه نشده بوده، ولی بعداً یک مترجم تصمیم میگیره ترجمهش رو کامل کنه چون ظاهر ناقص ترجمه رو دوست نداشته. نتیجه اینه که «دروغهای ملعون» به شما میگه اون نسخهی گنوم کاملا ترجمه شده، در حالی که هیچوقت واقعاً اینطور نبوده و هیچوقت هم نخواهد بود.
همهی اینا یعنی که مترجمها باید یاد بگیرن هوشمندانه کار کنن، در زمان مناسب، روی ماژولهای مناسب، بهجای تمرکز روی درصدها و آمار.
@gnome_fa
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 تخفیف ۵۰ درصدی برای دو دوره وردپرس
آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس - 750,000 تومان
https://rayium.ir/course/?p=1247
آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس - 499,000 تومان
https://rayium.ir/course/?p=1412
#دوره
#آموزش
#دوره_ویدئویی
@TheRaymondDev
آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس - 750,000 تومان
https://rayium.ir/course/?p=1247
آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس - 499,000 تومان
https://rayium.ir/course/?p=1412
#دوره
#آموزش
#دوره_ویدئویی
@TheRaymondDev
راییوم
آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس - راییوم
در این دوره خواهید آموخت که چگونه قالب حرفه ای را طراحی کنید. در این دوره اول صفحات را با چارچوب Bootstrap طراحی می کنیم و سپس رابط کاربری رو تبدیل به قالب
🔥2❤1