Yhya Nesb
627 subscribers
141 photos
1 video
1 file
112 links
شاب سوري طموح محب لعالم التقنية مهندس برمجيات
منشوراتي تعكس وجهة نظري الشخصية فقط.
Download Telegram
إنشاء متغير وفقاً لقيمة متغير موجود في الأساس

قد تكون فكرة سهلة وبسيطة ويمكن إنشائها بأكثر من طريقة، لكن كثرة الاحتمالات ستجعلاً من بعض الطرق سيئة بقابلية القراءة أي كود غير نظيف ولهذه عليك التفكير بإستخدام التابع Match الذي يطابق التعبير (شبيه ب switch) الذي تمت إضافته في php8.0، سأعرض عليك بعض الطرق التي تأكد عليك ضرورة إستخدام التابع match لإنشاء كود نظيف

جميع الطرق موجودة في الصور

بعدما رأيت الطرق الممكنة لإنشاء متغير وفقاً لقيمة متغير موجود في السابق أخبرني ماهي الطريقة الأنسب

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#php #laravel #برمجة #cleanCode #clean_code #php_trick #كود_نظيف
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
مرحبا، حبيت جرب Laravel 11 بعد التثبيت شغلت السيرفر المحلي مثل العادة من خلال أداة artisan وبعد ما دخلت لشوف التصميم الجديد 😍 بتصادفني مشكلة مضمونها جدول الجلسات غير موجود 😐، قلت مافي مشكلة هلق بنشأ الجداول وبعمل قاعدة بيانات جديدة من خلال أمر migrate 😅 والخطء القاتل كان خطء بالتجميع (collation) ولازم تكون قاعدة البيانات ذات تجميع "utf8mb4_0900_ai_ci" 😶 وبعد بضعة دقائق من المحاولة والبحث تبين أن قواعد البيانات عندي لا تدعم هذا النوع من التجميع 😢

بعد ساعات من البحث وتحديث الحزم وخدمات قواعد البيانات لم أنجح في الوصول لحل

تذكرت بأن ملفات تكوين قواعد البيانات في Laravel تحتوي على ترميز قاعدة البيانات

والحمد لله قدرت حل المشكلة، وفي حال واجهتك فقط ضيف السطر التالي بملف .env الخاص فيك:

DB_COLLATION=utf8mb4_general_ci

وإذا لم ينجح إستبدل نوع التجميع (utf8mb4_general_ci) بنوع تجميع متوفر عندك، ومبروك وفرت وقت كبير 😁

وفي حال كنت تستخدم سيرفر قواعد البيانات mariadb ممكن تختاره أثناء التنصيب لتفادي الوقوع في المشكلة (تمت إضافته في التحديث الجديد كخيار مختلف عن mysql)

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#laravel #php #mysql #maraidb #bug #مشاكل #مشكلة #حل_مشاكل #laravel11 #laravel_11
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
إنشاء paginate مرقم في Laravel مثل الصورة

أول عليك إنشاء paginate في ال Controller ثم تمريرها إلى العرض View:

$users = DB::table('users')->paginate(15);


ثم في العرض ستقوم بإظهار النتائج الحالية (حسب ترتيب الصفحة) من خلال الإستعانة بالمولد @foreach: (ملاحظة هنا أعرض نتائج بسيطة، البيانات يجب أن توضع بجدول)

<div class="container">

@foreach ($users as $user)

<p>{{ $user->name }}</p>

@endforeach

</div>


وفي النهاية لعرض روابط التنقل بين الصفحات الخاصة بال paginate عليك اتبع الاوامر التالية:

تصدير عروض ترقيم الصفحات إلى الموارد resource

php artisan vendor:publish --tag=laravel-pagination

ثم إستخدم الكود التالي في العرض الخاص بك (سيتم التنسيق بإستخدام tailwindcss):

{{ $users->links('vendor.pagination.tailwind') }}


ومبروك عليك ال paginate

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#laravel #php #oop #paginate #tailwindcss
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
بعض النصائح التي تستطيع إستعمالها في Laravel لتسهل عليك بعض العمليات عندما تتعامل الموجهات Routes

#laravel #php #oop #tips #laravel_tips
منشور من سلسة #CleanCode لمعرفة التفاصيل انقر هنا 🔗
الجزء السابع في هذه القناة 7️⃣
لا تكتب توابع على مستوى الملفات:
أو على مستوى البرنامج (global) وذلك يعود لعدة أسباب:
- عدم التضارب مع المكتبات المستخدمة
- إنشاء أخطاء قاتلة في حال إستخدامه بشكل غير صحيح
لنفترض أنك تريد إنشاء تابع لعرض إعدادات التكوين config الخاصة بالبرنامج الخاص بك وتريد سرد مصفوفة
الاستخدام السيء:
function config(): array
{
return [
'foo' => 'bar',
];
}

الاستخدام الجيد:
class Configuration
{
private $configuration = [];

public function __construct(array $configuration)
{
$this->configuration = $configuration;
}

public function get(string $key): ?string
{
// null coalescing operator
return $this->configuration[$key] ?? null;
}
}
// إستدعاء إعدادات التكوين
$configuration = new Configuration([
'foo' => 'bar',
]);

وطبعاً يمكنك في المثال السابق إستعمال التوابع السحرية لجلب قيمة مفتاح ما 😁
لا تستخدم نمط Singleton:
هو نمط يفيد في إنشاء كائن object واحد من أي صنف class له عيوب وفوائد عديدة
لقراءة العيوب: انقر هنا
لقراءة الفوائد: انقر هنا
الاستخدام السيء:
class DBConnection
{
private static $instance;

private function __construct(string $dsn)
{
// ...
}

public static function getInstance(): self
{
if (self::$instance === null) {
self::$instance = new self();
}

return self::$instance;
}

// ...
}

$singleton = DBConnection::getInstance();

الاستخدام الجيد:
class DBConnection
{
public function __construct(string $dsn)
{
// ...
}

// ...
}
$connection = new DBConnection($dsn);

هذا كل شيء لليوم 😁 في حال أعجبك هكذا نوع من المنشورات لا تنسا مشاركته مع أصدقائك ☺️
للمزيد من هذه الشروحات يمكنك متابعتي ⬅️ @YhyaNesb 🔥
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
مشروع Laravel 👩‍💻 الخاص بك في خطر ☠️ ؟
العديد من المبرمجين يرتكبون أخطاء قاتلة قد تؤدي لتسريب عدد كبير من البيانات 📚
أحد الأشخاص نشر عن قدرته في الوصول لملف .env لمشروع Laravel 👩‍💻 طلب منه صاحبه القيام بعملية إختبار إختراق
حسناً كيف تمت عملية الوصول لملف .env الذي يعد العامود الفقري لمشاريع Laravel 👩‍💻 ؟
لعدة أسباب منها
- وضع ملف public/index.php في الجذر بجانب ملف .env 😬
- توجيه الطلبات التي لا تملك ملف إلى ملف public/index.php بسهولة عند الدخول لملف .env سيقوم السيرفر بالعثور على الملف وعرضه 😅
حسناً ماهي طرق الوقاية؟
- جعل مسار public هو مسار الجذر للموقع الخاص بك
- وضع ملفات المشروع بشكل كامل في مجلد مختلف عم مجلد الجذر، ووضع محتويات مجلد public في مجلد الجذر مع إجراء التعديلات المناسبة في ملف index.php

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#laravel #php #security
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11
Forwarded from Server Reset VPS
السلام عليكم ورحمه الله وبركاته
الأن نحن 117 عضو 🔥 وقد وعدتكم بمفجأت عند الوصول إلى 100 اخ وأخت 🎁 لذلك سنبدء بسلسلة شرح أساسيات التعامل مع 👩‍💻 سطر الأوامر - الترمنال - الواجهة الطرفية - terminal (bash اي لن تستطيع المتابعة معنا من خلال إستخدامك إلى CMD في ويندوز)، والسلسلة ستكون تفصيليلة وليس كشرح الكثير بمعنى أصح ستصبح على ادراك بما تفعل وذلك عن فهم وليس عن حفظ
لمن موجهة هذه السلسة!؟ 🤔
* المبرمجين بشكل عامل (التعامل مع سطر الأوامر ليس ضرورياً اليوم بل شيء أنت مجبر عليه بطريقة أو بخرى) فإذا كنت مبرمج أو تميل إلى (front-end/back-end/devops/cyber-security) فهو ضروري جداً وستفسيد من هذه السلسة بإذن الله ❤️
محتويات السلسة 🗒:
- شرح نظري عن ماهي BASH
- تحضير بيئة العمل
- تحدث المستودعات والبرامج (update Vs upgrade)
- سرد الملفات والمجلدات
- قراءة تفاصيل أمر معين
- إنشاء المجلدات والملفات 1
- إنشاء المجلدات والملفات 2
- حذف الملفات والمجلدات
- قراءة الملفات 1
-قراءة الملفات 2 بإستخدام grep (جزء 1)
-قراءة الملفات 3 بإستخدام grep (جزء 2)
- نسخ الملفات والمجلدات
- تحديث أسماء الملفات ونقلها
- حجم مجلد معين
- مدخل إلى الصلاحيات
- أنواع الصلاحيات
- الفرق بين المستخدم والمالك والمجموعة
- المستخدمين
- المجموعات
- الصلاحيات بشكل عملي
- تطبيق عملي على الصلاحيات (إنشاء Lab لتستطيع التطبيق على المفهيم وتأكيدها)
- التحكم في أجهزة التخزين (فلاشة USB - هارد خارجي)
- عرض معلومات المعالج ومعلومات الرام
- ضغط الملفات وفك ضغطها
- التعديل على متغيرات النظام
- التعامل مع أنظمة ترميز مشهورة مثل: (Base64 - Base32)
- قراءة السجلات
- معلومات حول الاتصال بالشبكة
- إنشاء إتصال مخصص
- العمليات النشطة (إيقافها بشكل مؤقت - إيقافها بشكل كامل - إنشاء عملية تسير في الخلفية)
- البحث عن ملفات جزء 1
- البحث عن ملفات جزء 2
- الاتصال ببرتكول SSH
- شرح عن GIT
- التعامل مع المدخلات في BASH
سنبداً بإذن الله مع بداية شهر رمضان المبارك (9-11 آذار تقريباً)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
اضافة جداً جملية في محررات jetbrains باسم Full Line Code Completion
الإضافة عبارة عن أداة ذكاء إصطناعي تقوم بتحليل الكود الخاص بك وتساعدك في كتابة أي نص برمجي وفقاً للإقتراحات
يمكن القول أنها شبيه لـ copilot الخاص ب vs code
لكن الفرق هو ان هذه الإضافة:
مجانية تماماً 🔥
تعمل على المعالج المركزي CPU الخاص بك وعلى المعالج الرسومي GPU في أجهزة Mac
لا تقوم بإرسال أي بيانات لجهات خارجية
تقوم بدعم اللغات التالية:
Python, Kotlin, Java, JavaScript/TypeScript + their frameworks and CSS/LESS/SCSS/SASS, C++, Go (experimental), Kotlin, PHP, Ruby.
ولكن الدعم الأكبر على بايثون
شاركنا رأيك بهذه الإضافة 😁

للمزيد من المنشورات ♻️: تصفح قائمة المنشورات
#php #python #javascript #ai #nodejs #IDE
Please open Telegram to view this post
VIEW IN TELEGRAM