اصول برنامه نویسی بهینه:اعتبارسنجی ها را در Request classes انجام دهید

اعتبارسنجی ها را در Request classes انجام دهید نه در controllers.

این یک رویکرد خوب برای پاک‌سازی کد و بهبود قابلیت نگهداری و تست است. با اعتبارسنجی را در کلاس‌های درخواست (Request classes) انجام دادن، مسئولیت‌های مربوط به اعتبارسنجی داده‌ها را از کنترلرها جدا می‌کنید و کدهای کنترلر را ساده‌تر و قابل مدیریت‌تر می‌کنید.

در لاراول، کلاس‌های درخواست معمولاً در مسیر app/Http/Requests قرار می‌گیرند. این کلاس‌ها مسئولیت اعتبارسنجی داده‌های درخواستی که توسط کاربران ارسال می‌شوند را دارند. به عنوان مثال، شما می‌توانید قوانین اعتبارسنجی مربوط به یک فرم ورود را در کلاسی به نام LoginRequest قرار دهید.

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

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

روش نادرست:

public function store(Request $request)
{
    $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
        'publish_at' => 'nullable|date',
    ]);

    ...
}

روش بهتر:

public function store(PostRequest $request)
{
    ...
}

class PostRequest extends Request
{
    public function rules()
    {
        return [
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
            'publish_at' => 'nullable|date',
        ];
    }
}

 

اصول برنامه نویسی بهینه: مدل های بزرگ،‌ کنترلرهای کوچک!

درسته، این یک رویکرد خوب برای طراحی سیستم‌های بزرگ و پیچیده است. با این رویکرد، مدل‌ها باید مسئولیت‌های مربوط به داده‌ها و منطق کسب و کار را بر عهده داشته باشند، در حالی که کنترلرها باید به عنوان واسط بین مدل‌ها و نماها عمل کنند و مسئولیت‌های مربوط به پردازش و توسط کاربر ارتباطی را بر عهده داشته باشند.

این رویکرد به شما کمک می‌کند تا کنترلرها را کوچک نگه دارید و آن‌ها را برای انجام وظایف مرتبط با واسط کاربری و مسیریابی بین مدل‌ها و نماها محدود کنید. این باعث می‌شود که کنترلرها ساده‌تر و قابل تست‌تر باشند.

همچنین، با نگه داشتن مدل‌ها بزرگ و تمرکز بر روی آن‌ها، می‌توانید منطق کسب و کار خود را به صورت منطقی و منظم سازماندهی کنید و از تکرار کدها جلوگیری کنید.

استفاده از الگوهای طراحی مانند Repository Pattern و Service Layer هم می‌تواند به شما کمک کند تا مدل‌ها را از کنترلرها جدا کرده و کد را سازماندهی و مدیریت بهتری دهید.

به طور کلی، رویکرد “مدل‌های بزرگ، کنترلرهای کوچک” بهبود قابلیت خوانایی، تست و توسعه سیستم‌های شما را تضمین می‌کند.

اگر از Query Builder یا raw SQL queries استفاده میکنید، تمام منطق پایگاه داده را در model ها یا Repository classes قرار بدهید.

روش اشتباه:

public function index()
{
    $clients = Client::verified()
        ->with(['orders' => function ($q) {
            $q->where('created_at', '>', Carbon::today()->subWeek());
        }])
        ->get();

    return view('index', ['clients' => $clients]);
}

روش بهتر:

public function index()
{
    return view('index', ['clients' => $this->client->getWithNewOrders()]);
}

class Client extends Model
{
    public function getWithNewOrders()
    {
        return $this->verified()
            ->with(['orders' => function ($q) {
                $q->where('created_at', '>', Carbon::today()->subWeek());
            }])
            ->get();
    }
}

 

اصول برنامه نویسی بهینه: اصل تک وظیفه ای بودن

اصل تک وظیفه‌ای بودن (Single Responsibility Principle یا SRP) از اصول اصلی برنامه‌نویسی شیءگراست که در فریم‌ورک لاراول نیز توصیه می‌شود. این اصل می‌گوید که هر کلاس یا قسمت از برنامه باید مسئولیت یک وظیفه خاص را داشته باشد و فقط در انجام آن وظیفه خاص تخصص داشته باشد.

در مفهوم لاراول، این اصل به این معناست که هر کلاس، کنترلر، یا قطعه کد باید فقط یک کار خاص را انجام دهد و به وظایف دیگر از جمله ارتباط با دیتابیس، ارسال ایمیل، یا هر نوع عملیات دیگر که ممکن است به آن نیاز داشته باشد، دخالت نکند.

برای رعایت اصل تک وظیفه‌ای بودن در لاراول، می‌توانید از مفاهیمی مانند مدل‌ها، کنترلرها، و توابع کمکی استفاده کنید. به عنوان مثال، می‌توانید توابع کمکی را در کلاس‌هایی جداگانه قرار دهید، مدل‌ها را برای کارهای مرتبط با دیتابیس و کنترلرها را برای مدیریت واسط کاربری و مسیریابی بین مدل‌ها و نماها استفاده کنید.

استفاده از الگوهای طراحی مانند Repository Pattern نیز می‌تواند به رعایت این اصل کمک کند، زیرا این الگو به شما کمک می‌کند تا کدهای مربوط به دسترسی به داده‌ها را جدا کنید و آن‌ها را در یک مکان متمرکز قرار دهید. این کمک می‌کند تا انعطاف‌پذیری بیشتری در مدیریت و توسعه برنامه داشته باشید.

با رعایت اصل تک وظیفه‌ای بودن در لاراول، کد شما بهبود می‌یابد و قابلیت خوانایی، تست و توسعه راحت‌تری را خواهد داشت.

روش اشتباه:

public function getFullNameAttribute(): string
{
    if (auth()->user() && auth()->user()->hasRole('client') && auth()->user()->isVerified()) {
        return 'Mr. ' . $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name;
    } else {
        return $this->first_name[0] . '. ' . $this->last_name;
    }
}

روش بهتر:

public function getFullNameAttribute(): string
{
    return $this->isVerifiedClient() ? $this->getFullNameLong() : $this->getFullNameShort();
}

public function isVerifiedClient(): bool
{
    return auth()->user() && auth()->user()->hasRole('client') && auth()->user()->isVerified();
}

public function getFullNameLong(): string
{
    return 'Mr. ' . $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name;
}

public function getFullNameShort(): string
{
    return $this->first_name[0] . '. ' . $this->last_name;
}

 

آموزش کامل عناصر HTML: اصول و راهنمای استفاده

مقدمه: HTML یکی از اصولی‌ترین زبان‌های برنامه‌نویسی وب است که برای ساختاردهی و نمایش اطلاعات در وب‌سایت‌ها استفاده می‌شود. در این مقاله، عناصر اساسی HTML را مرور می‌کنیم و به شما راهنمایی می‌دهیم که چگونه از هر کدام استفاده کنید.

  1. عنوان (<h1> تا <h6>): عناصر عنوان از <h1> تا <h6> برای تعریف عنوان‌های مختلف صفحه وب استفاده می‌شوند. عنوان با استفاده از این تگ‌ها تعریف می‌شود و از اهمیت ۱ (h1) تا اهمیت ۶ (h6) رتبه‌بندی می‌شود.
    <h1>عنوان اصلی</h1>
    <h2>عنوان فرعی</h2>
    ...
    <h6>عنوان کوچک</h6>
  2. پاراگراف (<p>): این تگ برای تعریف پاراگراف‌ها در صفحه‌های وب استفاده می‌شود.
    <p>این یک پاراگراف است.</p>
  3. تصاویر (<img>): از این تگ برای اضافه کردن تصاویر به صفحه وب استفاده می‌شود. باید آدرس تصویر را در ویژگی src این تگ قرار دهید.
    <img src="آدرس-تصویر.jpg" alt="توضیحات تصویر">
  4. لینک‌ها (<a>): این تگ برای ایجاد لینک‌ها به صفحات دیگر یا منابع دیگر در وب استفاده می‌شود. باید آدرس مقصد لینک را در ویژگی href این تگ قرار دهید.
    <a href="آدرس-مقصد">متن لینک</a>
  5. لیست‌ها: HTML دارای دو نوع اصلی از لیست‌ها است: لیست‌های مرتب (<ol>) و لیست‌های نامرتب (<ul>).
    <ul>
    <li>مورد اول</li>
    <li>مورد دوم</li>
    ...
    </ul>

    <ol>
    <li>مورد اول</li>
    <li>مورد دوم</li>
    ...
    </ol>

  6. جداول (<table>): این تگ برای ساخت جداول در صفحه وب استفاده می‌شود. از تگ‌های <tr> (ردیف)، <th> (سرستون) و <td> (سلول) برای ساختاردهی جدول استفاده می‌شود.
    <table>
    <tr>
    <th>سرستون ۱</th>
    <th>سرستون ۲</th>
    </tr>
    <tr>
    <td>مقدار ۱</td>
    <td>مقدار ۲</td>
    </tr>
    </table>

خلاصه: در این مقاله، عناصر اصلی HTML را مرور کردیم و نحوه استفاده از هر یک را توضیح دادیم. با استفاده از این عناصر، شما قادر خواهید بود تا صفحات وبی جذاب و قابل تعامل بسازید. به یاد داشته باشید که از استانداردها و راهنمایی‌های بهترین عملکرد در زمینه HTML پیروی کنید تا صفحات وبی سازگار و ناکارآمد نسازید.

دنیای رنگارنگ تگ‌های HTML: بلوک‌های سازنده صفحات وب

HTML (HyperText Markup Language) زبان بنیادی وب است که برای ساختاردهی و نمایش محتوای صفحات وب به کار می‌رود. این زبان از مجموعه‌ای از تگ‌ها تشکیل شده است که به مرورگر دستور می‌دهند که چگونه متن، تصاویر، ویدئوها و سایر عناصر را در صفحه نمایش دهد.

تگ‌های HTML به دو دسته کلی تقسیم می‌شوند:

1. تگ‌های بلاک (Block Tags):

  • مانند بلوک‌های ساختمانی عمل می‌کنند و فضای مجزا در صفحه اشغال می‌کنند.
  • نمی‌توانند داخل یکدیگر قرار بگیرند.
  • شامل تگ‌های عناوین (<h1> تا <h6>)، پاراگراف‌ها (<p>)، لیست‌ها (<ul> و <ol>)، جداول (<table>) و فرم‌ها (<form>) می‌شوند.

مثال:

HTML

<h1>عنوان صفحه</h1>

<p>این یک پاراگراف است.</p>

<ul>

<li>مورد اول</li>

<li>مورد دوم</li>

</ul>

2. تگ‌های اینلاین (Inline Tags):

  • درون محتوای تگ‌های بلاک قرار می‌گیرند و فضای مجزا اشغال نمی‌کنند.
  • می‌توانند داخل یکدیگر قرار بگیرند.
  • شامل تگ‌های فرمت‌دهی متن (مانند <b> برای متن ضخیم</b> و <i> برای متن کج</i>)، لینک‌ها (<a>) و تصاویر (<img>) می‌شوند.

مثال:

HTML

<p>این یک پاراگراف است که <b>کلمه‌ای</b> <i>فونت کج</i> دارد.</p>

<a href=“https://www.example.com”>لینک به یک وب‌سایت</a>

<img src=“image.jpg” alt=“تصویر”>

علاوه بر این دو دسته اصلی، تگ‌های دیگری نیز وجود دارند که در دسته‌های فرعی قرار می‌گیرند، برای درک بهتر تگ‌ها، می‌توانید آنها را به دسته‌های زیر تقسیم کنید:

1. تگ‌های ساختاری:

  • <html><head><body><doctype html><meta><title><link><style>

2. تگ‌های متنی:

  • <b><i><u><pre><code><mark><del><ins><abbr><cite><q>

3. تگ‌های تصویری:

  • <img><figure><figcaption>

4. تگ‌های جدولی:

  • <table><tr><th><td><caption><colgroup><col>

5. تگ‌های فرم:

  • <form><input><select><textarea><label><fieldset><legend>

6. تگ‌های لیست:

  • <ul><ol><li>

7. تگ‌های بخش‌بندی:

  • <header><nav><article><aside><section><footer>

8. تگ‌های تعاملی:

  • <a><button><area><map>

9. تگ‌های رسانه‌ای:

  • <video><audio><source>

10. تگ‌های متا:

  • <meta>

نکات مهم:

  • تگ‌های HTML باید به صورت جفت باز و بسته شوند.
  • تگ‌های HTML باید به صورت حروف کوچک نوشته شوند.
  • از تگ‌های HTML به صورت صحیح و منطقی استفاده کنید.
  • برای رعایت استانداردها و خوانایی کد، از فاصله‌گذاری و تورفتگی مناسب استفاده کنید

با یادگیری انواع تگ‌های HTML، می‌توانید به دنیای طراحی وب قدم بگذارید و صفحات وب جذاب و کارآمدی را برای خود یا دیگران ایجاد کنید.

منابع برای یادگیری بیشتر:

با تسلط بر انواع تگ‌های HTML، می‌توانید خلاقیت خود را در طراحی صفحات وب به نمایش بگذارید و وب‌سایت‌هایی با ظاهری زیبا و کاربری آسان خلق کنید.

ساختار پایه HTML: اسکلت‌بندی صفحات وب

HTML (HyperText Markup Language) زبان بنیادی وب است که برای ساختاردهی و نمایش محتوای صفحات وب به کار می‌رود. این زبان از مجموعه‌ای از تگ‌ها تشکیل شده است که به مرورگر دستور می‌دهند که چگونه متن، تصاویر، ویدئوها و سایر عناصر را در صفحه نمایش دهد.

درست مانند ساخت یک ساختمان که به اسکلت فلزی برای استحکام نیاز دارد، صفحات وب نیز برای نمایش صحیح محتوا به یک ساختار پایه نیاز دارند. این ساختار پایه توسط تگ‌های HTML ایجاد می‌شود.

عناصر اصلی ساختار پایه HTML:

  • <!DOCTYPE html>: این تگ به مرورگر اعلام می‌کند که سند شما یک صفحه HTML است.
  • <html>: این تگ عنصر اصلی HTML را که شامل تمام محتوای صفحه وب شما است، مشخص می‌کند.
  • <head>: این تگ حاوی اطلاعاتی در مورد صفحه وب شما، مانند عنوان، متا دیتا و لینک‌های خارجی است.
  • <title>: این تگ عنوان صفحه وب شما را مشخص می‌کند که در نوار عنوان مرورگر نمایش داده می‌شود.
  • <body>: این تگ محتوای اصلی صفحه وب شما، مانند متن، تصاویر، ویدئوها و فرم‌ها را در بر می‌گیرد.

مثال یک سند HTML ساده:

HTML

<!DOCTYPE html>

<html>

<head>

<title>صفحه اول من</title>

</head>

<body>

<h1>عنوان صفحه</h1>

<p>این یک پاراگراف است.</p>

<img src=“image.jpg” alt=“تصویر”>

<a href=“https://www.example.com”>لینک به یک وب‌سایت</a>

</body>

</html>

نکات مهم:

  • تمام تگ‌های HTML باید به صورت جفت باز و بسته شوند.
  • تگ‌های HTML باید به صورت حروف کوچک نوشته شوند.
  • از تگ‌های HTML به صورت صحیح و منطقی استفاده کنید.
  • برای رعایت استانداردها و خوانایی کد، از فاصله‌گذاری و تورفتگی مناسب استفاده کنید.

با یادگیری ساختار پایه HTML، می‌توانید به دنیای طراحی وب قدم بگذارید و صفحات وب جذاب و کارآمدی را برای خود یا دیگران ایجاد کنید.

منابع برای یادگیری بیشتر:

با تسلط بر ساختار پایه HTML، گامی بلند در جهت تبدیل شدن به یک طراح وب موفق خواهید برداشت.

آشنایی با HTML و کاربردهای آن

HTML: زبان پایه وب

در دنیای امروز، اینترنت به بخش جدایی‌ناپذیری از زندگی ما تبدیل شده است. وب‌سایت‌ها به عنوان دروازه‌ای به دنیای اطلاعات، نقش مهمی در تبادل اطلاعات و ارائه خدمات ایفا می‌کنند. برای ایجاد این وب‌سایت‌ها، از زبانی به نام HTML (HyperText Markup Language) استفاده می‌شود.

HTML زبانی است که برای ساختاردهی محتوا در صفحات وب به کار می‌رود. این زبان از مجموعه‌ای از تگ‌ها تشکیل شده است که به مرورگر وب دستور می‌دهند که چگونه محتوا را نمایش دهد.

کاربردهای HTML:

  • ایجاد صفحات وب: HTML برای ساختاردهی محتوای صفحات وب، از جمله متن، تصاویر، ویدئوها، لینک‌ها و فرم‌ها استفاده می‌شود.
  • قالب‌بندی متن: HTML از تگ‌های مختلفی برای قالب‌بندی متن، مانند عناوین، پاراگراف‌ها، لیست‌ها و جداول استفاده می‌کند.
  • ایجاد لینک‌ها: HTML به شما امکان می‌دهد تا لینک‌هایی بین صفحات وب ایجاد کنید و به کاربران اجازه دهید به راحتی بین صفحات مختلف یک وب‌سایت یا وب‌سایت‌های دیگر حرکت کنند.
  • افزودن تصاویر و ویدئوها: HTML تگ‌هایی را برای افزودن تصاویر و ویدئوها به صفحات وب ارائه می‌دهد.
  • ایجاد فرم‌ها: HTML برای ایجاد فرم‌هایی استفاده می‌شود که به کاربران اجازه می‌دهد تا اطلاعات را به وب‌سایت ارسال کنند.
  • سازگاری با مرورگرها: HTML یک زبان استاندارد است که توسط تمام مرورگرهای وب پشتیبانی می‌شود. این امر به این معنی است که صفحات وب شما در تمام دستگاه‌ها، از جمله کامپیوتر، تبلت و موبایل، به درستی نمایش داده خواهند شد.

مزایای یادگیری HTML:

  • یادگیری آسان: HTML زبانی نسبتاً ساده است که یادگیری آن آسان است.
  • کاربردهای گسترده: HTML در طیف وسیعی از برنامه‌ها، از جمله طراحی وب‌سایت، توسعه اپلیکیشن‌های وب و ایمیل، کاربرد دارد.
  • پایه ای برای سایر زبان های برنامه نویسی وب: HTML پایه و اساس سایر زبان‌های برنامه‌نویسی وب، مانند CSS و JavaScript است.
  • مهارتی ارزشمند: توانایی یادگیری HTML مهارتی ارزشمند است که می‌تواند درهای فرصت‌های شغلی جدیدی را به روی شما باز کند.

منابع یادگیری HTML:

  • منابع آنلاین: منابع آنلاین متعددی برای یادگیری HTML به صورت رایگان یا با هزینه کم در دسترس هستند. وب‌سایت‌های W3Schools و MDN Web Docs از جمله این منابع هستند.
  • کتاب‌ها: کتاب‌های متعددی در مورد HTML به زبان فارسی و انگلیسی منتشر شده‌اند که می‌توانند به شما در یادگیری این زبان کمک کنند.
  • دوره‌های آموزشی: دوره‌های آموزشی آنلاین و حضوری مختلفی برای آموزش HTML برگزار می‌شوند که می‌توانند به شما در یادگیری این زبان به صورت ساختاریافته و با کمک مربیان مجرب کمک کنند.

HTML زبانی قدرتمند و انعطاف‌پذیر است که به شما امکان می‌دهد تا وب‌سایت‌های جذاب و کارآمدی را طراحی و توسعه دهید. با یادگیری HTML، می‌توانید به دنیای هیجان‌انگیز طراحی وب و توسعه اپلیکیشن‌های وب قدم بگذارید و مهارت‌های ارزشمندی را برای خود کسب کنید

آموزش مقدماتی HTML: سرفصل ها

سرفصل های دوره آموزشی HTML

دوره آموزشی HTML شامل موارد زیر می باشد:

1. مقدمه‌ای بر HTML:

  • آشنایی با HTML و کاربردهای آن
  • معرفی ساختار پایه HTML
  • آشنایی با انواع تگ‌های HTML

2. ساختار صفحات وب:

  • عناصر HTML و نحوه استفاده از آنها
  • انواع تگ‌های HTML برای ساختاردهی محتوا
  • ایجاد عناوین، پاراگراف‌ها، لیست‌ها و جداول

3. قالب‌بندی متن:

  • فرمت‌دهی متن با استفاده از تگ‌های HTML
  • استفاده از CSS برای اعمال استایل به متن
  • ایجاد لینک‌های داخلی و خارجی

4. تصاویر و ویدئوها:

  • افزودن تصاویر و ویدئوها به صفحات وب
  • استفاده از تگ‌های مناسب برای تصاویر و ویدئوها
  • رعایت اصول سئو برای تصاویر

5. فرم‌ها:

  • ایجاد فرم‌های HTML برای جمع‌آوری اطلاعات از کاربران
  • انواع عناصر فرم، مانند فیلدهای متنی، کادرهای انتخابی و دکمه‌ها
  • ارسال داده‌های فرم به سرور

6. جداول:

  • ایجاد جداول HTML برای نمایش داده‌های ساختاریافته
  • قالب‌بندی جداول با استفاده از CSS
  • استفاده از تگ‌های مناسب برای سطرها، ستون‌ها و سلول‌های جدول

7. عناصر بلاک و اینلاین:

  • تمایز بین عناصر بلاک و اینلاین
  • نحوه استفاده از عناصر بلاک و اینلاین برای ساختاربندی محتوا
  • ایجاد طرح‌بندی‌های پیچیده با استفاده از عناصر بلاک و اینلاین

8. صفات HTML:

  • استفاده از صفات HTML برای افزودن اطلاعات به تگ‌ها
  • انواع صفات HTML و کاربردهای آنها
  • استفاده از صفات برای سفارشی کردن ظاهر و رفتار عناصر

9. کامنت‌ها:

  • افزودن کامنت به کد HTML برای توضیح عملکرد آن
  • انواع کامنت‌ها در HTML
  • استفاده از کامنت‌ها برای بهبود خوانایی کد

10. استانداردهای HTML:

  • آشنایی با آخرین نسخه‌های HTML
  • رعایت استانداردهای HTML برای ایجاد صفحات وب سازگار با مرورگرهای مختلف
  • استفاده از ابزارهای اعتبارسنجی HTML برای بررسی صحت کد

11. مقدمه‌ای بر JavaScript:

  • آشنایی با JavaScript و کاربردهای آن در HTML
  • افزودن کد JavaScript به صفحات HTML
  • ایجاد تعاملات پویا با استفاده از JavaScript

12. پروژه‌های عملی:

  • انجام پروژه‌های عملی برای تثبیت آموخته‌ها
  • طراحی و توسعه صفحات وب واقعی با استفاده از HTML
  • کسب تجربه عملی در زمینه طراحی وب