آنوفل دنیای برنامه نویسی
116 subscribers
228 photos
244 links
آنوفل | Anophel: دنیای بی ‌پایان امکانات برای برنامه‌ نویسان

website: https://anophel.com

پشتیبانی :
@anophel_support

#anophel #آنوفل #برنامه_نویسی
Download Telegram
لاراول 11 : آپدیت لاراول 10 به لاراول 11 | مرحله به مرحله

🔺 لاراول 11 آخرین نسخه در حال حاضر لاراول است که چند مدت پیش منتشر شد و با این آپدیت جدید ویژگی های بسیار هیجان انگیز به آن اضافه گردید، در این مقاله می خواهیم نحوه آپگرید از لاراول 10 به لاراول 11 به صورت مرحله به مرحله یاد بگیریم.  ارتقاء ب...

🌐 : لاراول 11 : آپدیت لاراول 10 به لاراول 11 | مرحله به مرحله

#laravel11 #laravel #php #لاراول #لاراول11
کار با Enums در PHP: راهنمای کدنویسی ایمن تر

🔺 به‌عنوان یک توسعه‌دهنده، حتماً با موقعیت‌هایی برخورد کرده‌اید که یک متغیر فقط می‌تواند یکی از مجموعه کوچکی از مقادیر ممکن را بگیرد. به عنوان مثال، متغیری که وضعیت یک کاربر را نگه می‌دارد ممکن است فقط دارای امکانات «فعال»، «غیرفعال» یا «تعلیق شده» باش...

🌐 : کار با Enums در PHP: راهنمای کدنویسی ایمن تر

#پی_اچ_پی #php #enum
چقدر درباره اهمیت Todo در تست می دانید؟

در PHPunit، معمولا وقتی todo را در برخی از کدها می نویسم، به این دلیل است که چیز مهمی در مورد کدی که به آن نزدیک هستیم می‌فهمیم، اما زمانی برای اصلاح یا تغییر آن نداریم. این واقعیت که شما عمیقاً در درک کد در آن زمان هستید بسیار ارزشمند است. احتمالاً در زمانی که کار را می نویسید، بیشترین اطلاعات را در مورد آن کد دارید.

برای مثال شما کد نوشته اید و از نکات آن اطلاع دارید. شاید مجبور شده باشید بدون تست نوشتن ادامه دهید. چگونه می خواهید همه سناریوها را یک هفته، یک ماه بعد به خاطر بسپارید؟ آیا هرگز به آن برمی گردی؟ من فکر می کنم زمانی که ما در حال نوشتن کد هستیم، بیشتر از موارد استفاده می دانیم. بنابراین، این زمان مناسب برای نوشتن تست ها است.

یا حداقل پوسته‌های تست‌ها را با todos بنویسید. به این ترتیب، می‌دانید وقتی دوباره روی آن کار می‌کنید، چه چیزی را باید تست کنید. مهم‌تر این است که بدانید با نگاه کردن به todo ها چه چیزی تست نمی‌شود. در صورت مشاهده 20 تست واحد، ممکن است فرض کنید کل فرآیند در حال تست است. اما، هنگامی که برخی از تست‌های todo را می‌بینید، مناطق خاصی را می‌شناسید که تست نشده‌اند و مناطقی را می‌شناسید که نمی‌توانید به طور کامل به آنها وابسته باشید.

با PHPUnit می توانیم تست ها را به عنوان ناقص علامت گذاری کنیم. این بدان معنی است که مجموعه تست واحد همچنان اجرا می شود، اما ما شروع به مشاهده نشانه هایی از تست هایی خواهیم کرد که ناقص هستند. اگر تست‌های todo ما به رشد خود ادامه دهند، آن‌ها را در هر تست مشاهده خواهیم کرد.

در خروجی خود، می دانید که پوشش شما به روشی اشتباه پیش می رود. این به شما کمک می کند تا بفهمید که باید تست های بیشتری بنویسید.

در نهایت، بسته به تیم خود، ممکن است افراد خاصی داشته باشید که به انواع خاصی از todo نیاز دارند، یا ممکن است بخواهید شخص جدیدی را وارد کنید. با نوشتن تست‌های todo، می‌توانید به کسی وظایف واضحی بدهید: تست‌ها را پر کنید.


اجرای تست های Todo
برای اینکه فرآیند علامت‌گذاری یک تست آسان‌تر شود، یک متد را در کلاس تست پایه خود قرار دادم. (شما همچنین می توانید این را به عنوان یک trait بنویسید و آن را در کلاس های تست قرار دهید که دارای todo هستند، اما داشتن آن در کلاس تست پایه ساده تر است).

Anophel آنوفل

#لاراول #آنوفل #laravel #تست_نویسی #تست #php #phpunit
در لاراول بین with و load چه تفاوتی وجود دارد؟

وقتی از with استفاده می‌کنیم، Laravel تلاش می‌کند تمام اطلاعات مرتبط با رابطه را به صورت eager loading از پیش بارگذاری کند، یعنی داده‌ها با یک کوئری از دیتابیس به صورت همزمان خوانده می‌شوند. این کار معمولاً برای بهینه‌سازی عملکرد و کاهش تعداد کوئری‌ها به دیتابیس مفید است.

از طرف دیگر، load به ما اجازه می‌دهد که داده‌های یک رابطه را به صورت lazy loading، و تنها در صورتی که به آن‌ها نیاز داشته باشیم، بارگذاری کنیم. این متد به دلیل کارآمدی زمانی مناسب است که نیازمندیم که داده‌ها به صورت پویا و بسته به شرایط خاصی بارگذاری شوند.

خلاصه کلام:
متد with: برای بارگذاری eager loading که داده‌ها به صورت پیش‌فرض با یک کوئری از پایگاه داده درخواست می‌شوند.

متد load: برای بارگذاری lazy loading که داده‌ها فقط زمانی بارگذاری می‌شوند که به آن‌ها نیاز داریم و به صورت جداگانه از هر مدل فراخوانی می‌شود.

Anophel آنوفل

#لاراول #کد_نویسی #laravel #php
در 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
در توسعه وب با PHP، دو مفهوم "PHP workers" و "PHP memory limit" خیلی مهم هستند که باید در نظر گرفته شوند، به خصوص زمانی که در حال بهینه‌سازی عملکرد وب‌سایت یا برنامه تحت وب هستید.

PHP Workers چیست

پی اچ پی ورکر به تعداد فرآیندهای همزمان اشاره دارد که سرور می‌تواند برای اجرای اسکریپت‌های PHP مدیریت کند. هر PHP worker یک فرآیند جداگانه است که می‌تواند درخواست‌های PHP را پردازش کند. اگر تعداد PHP workers شما محدود باشد، فقط به همان تعداد درخواست همزمان می‌توانند پردازش شوند و بقیه درخواست‌ها باید در صف منتظر بمانند تا یک worker آزاد شود.

به عنوان مثال، اگر تعداد PHP workers شما 10 باشد و 20 کاربر به طور همزمان به وب‌سایت شما درخواست ارسال کنند، 10 درخواست اول بلافاصله پردازش می‌شوند و 10 درخواست دیگر باید منتظر بمانند تا یکی از 10 ورکر اول کارش را تمام کند.

PHP Memory Limit

پی اچ پی مموری لیمیت به حداکثر میزان حافظه (RAM) اشاره دارد که یک اسکریپت PHP می‌تواند مصرف کند. این مقدار در فایل کانفیگ (php.ini) تنظیم می‌شود و می‌توان آن را برای هر اسکریپت نیز تنظیم کرد. این محدودیت برای جلوگیری از استفاده بیش از حد حافظه توسط اسکریپت‌ها و جلوگیری از خرابی سرور به کار می‌رود.

مثال:
memory_limit = 128M

این خط از فایل php.ini نشان می‌دهد که هر اسکریپت PHP می‌تواند حداکثر 128 مگابایت حافظه مصرف کند. اگر اسکریپت از این مقدار بیشتر بخواهد، با خطای حافظه مواجه خواهد شد.

رابطه و تعامل بین PHP Workers و PHP Memory Limit
رابطه بین این دو مفهوم زمانی مهم می‌شود که شما به میزان کلی حافظه RAM سرور خود فکر کنید. برای مثال، اگر سرور شما 1 گیگابایت RAM داشته باشد و شما 10 PHP workers داشته باشید، و هر worker بتواند تا 128 مگابایت RAM مصرف کند، ممکن است با مشکل کمبود حافظه مواجه شوید.

1. تعداد PHP workers بالا: باعث می‌شود که بتوانید درخواست‌های بیشتری را به صورت همزمان پردازش کنید، اما هر worker حافظه مخصوص به خود را مصرف می‌کند.

2. محدودیت حافظه پایین: باعث می‌شود که اسکریپت‌های PHP نتوانند بیش از حد حافظه مصرف کنند، اما اگر این مقدار خیلی کم باشد، ممکن است اسکریپت‌های پیچیده به درستی اجرا نشوند.

برای بهینه‌سازی سرور خود، باید بین تعداد PHP workers و میزان حافظه مجاز برای هر اسکریپت تعادل ایجاد کنید. این تعادل بستگی به میزان RAM سرور شما و نیازهای خاص برنامه‌های PHP شما دارد.

Anophel آنوفل

#php
کامنت نویسی در PHP : بهترین نکات و ترفند ها

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

🌐 : کامنت نویسی در PHP : بهترین نکات و ترفند ها

#php #لاراول #داکیومنت #laravel
آشنایی با کامنت های PHPDoc لاراول : داکیومنت نویسی به صورت حرفه ای

🔺 اگر یک توسعه دهنده لاراول هستید که به دنبال بهبود داکیومنت کد خود و بهبود فرآیند توسعه خود هستید، به جای درستی آمده اید. در این مقاله از آنوفل گام به گام، ما عمیقاً به کامنت نویسی Laravel PHPDoc (مستند سازی لاراول با PHPDoc) می پردازیم. ما همه چیز را...

🌐 : آشنایی با کامنت های PHPDoc لاراول : داکیومنت نویسی به صورت حرفه ای

#لاراول #داکیومنت_نویسی #php #laravel
در PHP، یک Closure یا Closure Function تابعی است که می‌تواند درون یک متغیر ذخیره شود و به عنوان آرگومان به توابع دیگر ارسال شود. Closure ها توابع ناشناس هستند این نوع توابع با استفاده از کلمه کلیدی function ایجاد می‌شوند و ممکن است به متغیرها و منابعی از حوزه‌ای که در آن تعریف شده‌اند، دسترسی داشته باشند. این ویژگی به Closure اجازه می‌دهد که به صورت دینامیک رفتار کند و با شرایط محیطی که در آن تعریف شده است، همگام باشد.

یکی از قابلیت‌های مهم Closure در PHP استفاده از کلمه کلیدی use برای دسترسی به متغیرهای خارجی است. این امکان به توابع Closure اجازه می‌دهد که به داده‌هایی که خارج از دامنه‌ی تابع تعریف شده‌اند، دسترسی داشته باشند.

در این مثال، Closure به متغیر message$ که خارج از تابع تعریف شده است، دسترسی دارد و آن را در خروجی به کار می‌برد.

تفاوت Closure با روش‌های دیگر

1. قابلیت حمل داده : برخلاف توابع معمولی که تنها درون حوزه‌ای که تعریف شده‌اند به متغیرها دسترسی دارند، Closure Function می‌تواند داده‌های محیط خود را حمل کند. این امر با استفاده از کلمه کلیدی use ممکن می‌شود.

2. استفاده در برنامه‌نویسی فانکشنال : Closureها در برنامه‌نویسی فانکشنال (Functional Programming) کاربرد زیادی دارند. به عنوان مثال، می‌توان آن‌ها را به عنوان آرگومان به توابع دیگر ارسال کرد که این ویژگی در توابع معمولی ممکن نیست.

3. انعطاف‌پذیری بیشتر : Closureها به دلیل قابلیت حمل داده و دسترسی به متغیرهای بیرونی، انعطاف‌پذیری بیشتری نسبت به توابع معمولی دارند. این امر باعث می‌شود که بتوان از آن‌ها در شرایط پیچیده‌تر استفاده کرد.

علت استفاده از Closure
استفاده از Closure در مواردی که نیاز به حمل داده‌های خارج از تابع به همراه تابع داریم بسیار مفید است. این امر به ویژه در مواردی که نیاز به ایجاد توابع callback، استفاده از توابع higher-order، یا ایجاد کدهای پویا داریم، اهمیت پیدا می‌کند.

به عنوان مثال، در هنگام کار با توابعی مثل array_map یا array_filter که نیاز به تابع callback دارند، Closureها می‌توانند برای ایجاد توابع callback پیچیده با داده‌های مرتبط استفاده شوند.

نتیجه‌گیری

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

#php #laravel #لاراول #closure_php

Anophel آنوفل