PDA

View Full Version : خطای Class not found



#root#
چهارشنبه 01 شهریور 1396, 20:08 عصر
طبق یکی از آموزش های Laracasts دارم یه پروژه مینویسم، که این خطا رو میگیرم:



PHP Fatal error: Uncaught Error: Class 'ExtractLinkCommand' not found in /home/PhpstormProjects/RVLE/RVLE.php:8
Stack trace:
#0 {main}
thrown in /home/PhpstormProjects/RVLE/RVLE.php on line 8



این composer.json:


{
"require": {
"symfony/console": "^3.3",
"guzzlehttp/guzzle": "^6.3"
},
"autoload": {
"psr-4": {
"Project\\": "src"
}
}
}



اینم RVLE.php:



#!/usr/bin/env php
<?php
require 'vendor/autoload.php';
use Symfony\Component\Console\Application;

$app = new Application('RVLE' , '1.0');
$app->add(new Project\ExtractLinkCommand());
$app->run();



اینم extractCommand.php:



<?php namespace Project;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class ExtractLinkCommand extends Command
{
private $client;

public function __construct($name = null)
{
$this->client = new GuzzleHttp\Client();
parent::__construct($name);
}

public function configure()
{
$this->setName('getLinks')
->setDescription('extract all available video links for given page url')
->addArgument('url' , InputArgument::REQUIRED , 'page link');
}

public function execute(InputInterface $input, OutputInterface $output)
{
$url = $input->getArgument('url');
$pageSource = $this->client->get($url);
$output->writeln($pageSource);
}
}



ساختار پروژم هم این شکلی هست:


.
├── composer.json
├── composer.lock
├── RVLE.php
├── src
│ └── extractCommand.php
└── vendor
├── autoload.php
├── composer
├── guzzlehttp
├── psr
└── symfony


دستور composer dump-autoload رو هم زدم، فرقی نکرده، نمیفهمم کجا دارم اشتباه میکنم، در صورت امکان راهنمایی بفرمایید.

plague
جمعه 03 شهریور 1396, 10:27 صبح
اگه فایل خودت دستی به پروژه اضافه کردی باید تو composer.json تو قسمت files اضافش کنی بعدش دامپ اتولود رو بزن

"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
} ,
"files": [
"newfolder/newfile.php" ,
]

}

#root#
جمعه 03 شهریور 1396, 20:45 عصر
تو stack هم پرسیدم، یکی گفت اسم فایل باید با کلاس یکی باشه، انجام دادم حل شد، ولی یه جواب دیگه هم دادن متوجه نشدم دقیقا چی میگه، موندم کدوم رو تیک بزنم:اشتباه:

https://stackoverflow.com/questions/45857234

توی پروژه ای که در آموزش دیدم هم این مورد رعایت شده بود:

https://github.com/laracasts/Build-Command-line-Apps