| کانال توسعه‌دهندگان PHP |
1.72K subscribers
17 photos
36 links
⭕️ کانال توسعه‌دهندگان پی‌اچ‌پی (PHP) دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
یکی از مرسوم‌ترین متد هایی که برای تولید اعداد تصادفی در PHP از اون استفاده می‌کنیم، متد rand هست

متد rand با وجود استفاده زیاد، تقریبا منسوخ و غیربهینه محسوب می‌شه و به‌صورت drop-in می‌تونیم با متد جدیدتری به‌اسم mt_rand جایگزینش کنیم

متد mt_rand از الگوریتم Mersenne Twister استفاده می‌کنه که حدودا 4 برابر سریع‌تر از الگوریتم مورد استفاده rand هست

ولی با این‌حال، هیچ یک از متد های rand یا mt_rand ایمن نیستند و به اصطلاح cryptographic secure نیستند، در اصل با پی بردن به seed اولیه‌شون می‌شه کل بازی رو در دست گرفت

برای همین اگر نیاز به تولید اعداد رندوم cryptographic دارید، توصیه می‌کنم از متد های random_int و random_bytes استفاده کنید، که معمولا چندین برابر کندتر از جنریتور های بالا هستند، ولی امنیت بهتری دارند

💎 Channel: @DevelopixPHP
👍12❤‍🔥2👎1🔥1
معمولا در PHP برای سر و کله زدن با String ها از متد های خانواده str استفاده می‌کنیم

مثلا برای گرفتن اندازه رشته، از متد strlen و برای پیدا کردن مختصات یک کاراکتر از strpos و به همین ترتیب برای سایر موارد نیز از سایر متد های خانواده str استفاده می‌کنیم

نکته‌ای که حائز اهمیت است، این است که استفاده از متد های str برای کاراکتر های Unicode و UTF توصیه نمی‌شود

چرا که متد های str به صورت خالی با byte سر و کار دارند

مثلا ایموجی‌ها را در نظر بگیرید، ایموجی‌ها معمولا 3 بایت حجم اشغال می‌کنند، به این علت که شکل نمایشی آن‌ها با شکل نوشتاری آن‌ها متفاوت است

مثلا strlen برای ایموجی 😒 معادل 3 است، ولی mb_strlen آن معادل 1 است

از جمله دلایلی که validate کردن length یا سر و کله زدن با String های یونیکدی و UTF ای را در PHP پیچیده می‌کند، نداشتن درک درمورد توابع MB است

به صورت خلاصه، اگر سر و کارتان با byte های یک String است، توابع str برای شما کفایت می‌کند

ولی اگر با متن های غیرساده سر و کار دارید، استفاده از متد های MultiByte یک ضرورت است، هرچند که چندین برابر کندتر است

💎 Channel: @DevelopixPHP
🔥12👍4👎1
اوپن سوله (OpenSwoole) یک Extension بسیار قوی و کارآمد برای PHP است

در واقع OpenSwoole یک مکمل و SuperCharge کننده برای PHP است و قابلیت‌هایی که PHP همیشه کمبود داشته را به PHP اضافه می‌کند

از جمله قابلیت های OpenSwoole:

وب‌سرور HTTP بسیار قدرتمند و سریع با توانایی هندل کردن چندین هزار درخواست بر ثانیه (حداقل 10 برابر بیشتر از وب‌سرور داخلی PHP)

پشتیبانی از کو روتین‌ها (Coroutine) در PHP و ممکن کردن برنامه‌نویسی Async

پشتیبانی از Hook های متعدد برای قابلیت های built-in خود PHP از جمله CURL و MySQL و …

پشتیبانی از برنامه‌نویسی MultiProcess و MultiThread و Async

پشتیبانی از gRPC و قابلیت پروتکل‌نویسی

قابلیت برنامه‌نویسی Event Driven و ریختن قیمه JS ها توی ماست PHP ها

و کلی قابلیت دیگه

به صورت خلاصه، اگر PHP کار می‌کنید و هنوز از OpenSwoole استفاده نمی‌کنید، دارید کلی مزیت رو از دست میدید

💠 گروه OpenSwoole

💎 Channel: @DevelopixPHP
👍16
یکی از کمبود هایی که در زبان PHP به‌عنوان یک زبان برنامه‌نویسی مدرن امروزی حس می‌شود، کتابخانه‌های مرتبط با هوش مصنوعی و یادگیری ماشین است

در راستای جبران این کمبود، کتابخانه RubixML یکی از اولین کتابخانه های Machine Learning و Deep Learning در این زبان است

این کتابخانه دارای ساختار OOP و Developer Friendly برای توسعه‌دهندگان PHP است

همچنین در حال حاضر بیش از 40 الگوریتم یادگیری نظارت شده و غیرنظارت شده را پشتیبانی می‌کند

از ETL و پیش‌پردازش و چندگانه‌سنجی هم پشتیبانی می‌کند

در حالت کلی، یکی از کامل‌ترین کیت‌های یادگیری ماشین برای PHP است و از Pipeline ها پشتیبانی می‌کند و دارای Tokenizer های متنوعی است

البته قابل ذکر است که در مقایسه با کتابخانه‌هایی مثل Tensorflow یا ML.net مانند مقایسه 206 با لندکروز عمل می‌کند و جای توسعه و پیشرفت زیادی دارد

همچنین در حال حاضر Tokenizer های قدرتمندی برای زبان‌های یونیکدی مثل فارسی ندارد و باید خودتان پیاده‌سازی کنید

با این حال، وجود و توسعه چنین کتابخانه‌ای برای PHP خبر خوبی است و آینده‌ای روشن دارد

💎 Channel: @DevelopixPHP
👍124🔥1
یکی از نکات بسیار مهمی که تقریبا در تمامی زبان‌ها وجود دارد ولی برنامه‌نویسان از آن آگاه نیستند، منطق اجرای حلقه‌ها می‌باشد

در تصویر بالا می‌توانید ببینید که دو کد مشابه، که اکثرا هم حالت اول آن را می‌نویسیم، چقدر می‌تواند باعث غیربهینه بودن کد شود

نکته مهم این پست اینجاست که تمامی کد های داخل condition حلقه، در هر iteration اجرا می‌شوند و اگر حلقه‌تان از توابع داینامیک مثل count یا … استفاده می‌کند، در هر iteration شما آرایه را count می‌کنید که این بهینه نیست

💎 Channel: @DevelopixPHP
👍22🔥1
🤔 میدونستید با php میتونید تگ های html بسازید؟

با استفاده از کلاس DOMDocument این کار امکان پذیر هست

😍 کد بالا بسیار خوانا و ساده نوشته شده برای درک این موضوع

👤 Matin Soleymani

💎 Channel: @DevelopixPHP
👍282🔥1
Forwarded from | Codilo |
🍉 یلدای امسال رو کُدیلویی بگذرونید!

🍓 تا پایان روز جمعه با دعوت دو کاربر جدید به کدیلو، فایل های کدیلو رو رایگان دریافت کنید

🥝 یلدای خوبی داشته باشید (:

💎 @Codilo
2