🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۴ شهباز شریعتمداری
سوال درباره 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

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

هیلا عبادی ۲۳ آذر ۱۴۰۰، ۲۰:۳۵