روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۴ محمد رضا اقدام
سوال درباره namespace
جامعه پی اچ پی ایجاد شده در ۱۷ آذر ۱۴۰۰

سلام وقتتون بخیر

من به یک مشکل عجیب توی namespace‌ها برخورد کردم و وقتی که کانفیگ‌های زیر در فایل composer اعمال می‌کنم

{
  "require-dev": {
    "phpunit/phpunit": "^9"
  },
  "autoload": {
    "psr-4": {
      "App\\\\": "src"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\\\": "tests"
    }
  }
}

با خطای

Uncaught Error: Class 'App\\Helper\\Config' not found in

برخورد میکنم ولی با تغییر scr به app در composer و فایل‌های پروژه مشکل حل میشه

به نظر شما کجای کار من مشکل داره؟

سلام رضا جان .

یک سوال ایا پس از تغییر با دستور

composer dumpautolod
Or
composer update 

اطلاعات رو بروز رسانی میکنی ؟

محمد نقلانی ۱۷ آذر ۱۴۰۰، ۰۹:۴۹

بله از دستور composer dumpautoload استفاده میکنم ولی باز هم مشکل هست

محمد رضا اقدام ۱۷ آذر ۱۴۰۰، ۰۹:۵۲

کد هاتون رو به شکل زیر تغییر بدید ببینید بازم مشکل پابرجا هستش :

{
  "require-dev": {
    "phpunit/phpunit": "^9"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
    }
  }
}
محمد نقلانی ۱۷ آذر ۱۴۰۰، ۱۰:۰۰

به این شکل و شکل‌های دیگه ای که داخل سایت composer توصیه کرده انجام دادم ولی باز هم مشکل برطرف نشد

محمد رضا اقدام ۱۷ آذر ۱۴۰۰، ۱۰:۰۴

سلام ، لطفا anydesk رو نصب کنید بعد کد ۹ رقمی که در اختیارتون میزاره رو به این ایمیل ارسال کنید

********@gmail.com

تا به صورت ریموتی چک کنم مشکل رو

محمد نقلانی ۱۷ آذر ۱۴۰۰، ۱۰:۱۴

سلام، فایل Helper شما در چه پوشه‌ای وجود داره؟

مهرداد سامی ۱۷ آذر ۱۴۰۰، ۱۰:۱۵

درحال حاضر در

app/


محمد رضا اقدام ۱۷ آذر ۱۴۰۰، ۱۰:۲۶

لطفا موارد رو مثل زیر تغییر بدید ، ریشه بندی پروژه با اطلاعات نوشته شده در composer.json یک سان نیست در عکس ارسالی شما

{
  "require-dev": {
    "phpunit/phpunit": "^9"
  },
  "autoload": {
    "psr-4": {
      "app\\": "app/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
    }
  }
}
محمد نقلانی ۱۷ آذر ۱۴۰۰، ۱۰:۲۹

با این شیوه هم کار نمیکند!

محمد رضا اقدام ۱۹ آذر ۱۴۰۰، ۱۷:۰۰

سلام.

شما داخل پروژه اصلا دایرکتوری src ندارید.

تصویری که گذاشتیدو ببینید. دایرکتوری app ساختید.

داخل فایل کامپوزر هم ما یک namespace بنام App تنظیم کردیم بسازیم و باید مشخص کنیم این namespace به کدوم دایرکتوری اشاره داره.

اینجا باید دایرکتوری app با حروف کوچیک رو بذارید.

اسم namespace هم App خواهد بود.

محسن موحد ۲۰ آذر ۱۴۰۰، ۰۸:۰۰

سلام

دوست عزیز اگر تیکت‌های قبلی به دقت مطالعه کرده باشید من قبلا گفته بودم که زمانی که فایل‌ها و تنظیمات روی src هست دچار مشکل میشم و در زمانی که تمامی این کانفیگ‌های چه نام فایل‌ها و چه تنظیمات composer به app تغییر میکنه مشکل حل میشه.


یعنی در زمانی که از scr استفاده میکنم هم نام فایل‌های من src هست و هم این که تنظیمات composer روی src هست و خطا دریافت میکنم، تصویر بالا هم برای زمانی هست که با تغییر نام فایل و تنظیمات composer به app مشکل حل میشه و حتی کلمات دیگه هم امتحان کردم ولی باز هم خطا گرفتم و فقط با کلمه و نام فایل‌های app برنامه بدون خطا کار میکنه

محمد رضا اقدام ۲۰ آذر ۱۴۰۰، ۱۰:۱۹

سلام دوست عزیز،‌مشکل هنوز پابرجاست یا خیر؟

مهرداد سامی ۲۰ آذر ۱۴۰۰، ۱۹:۲۲

سلام

بله هنوز پا برجا هست

محمد رضا اقدام ۲۱ آذر ۱۴۰۰، ۰۷:۳۱

تمام این مراحلو باید انجام بدید:

  • تغییر نام داخل composer.json
  • تغییر نام دایرکتوری
  • تغییر نام دایرکتوری در آدرس bootstrap داخل فایل phpunit.xml:
bootstrap="src/bootstrap/test.php"
  • اجرای کامند زیر داخل روت پروژه:
composer dump-autoload

اگر همه این کارهارو انجام میدید و بازهم نتیجه ی درست حاصل نمیشه، فایل پروژه تون رو ضمیمه کنید تا بررسی بشه.

محسن موحد ۲۳ آذر ۱۴۰۰، ۲۰:۳۵