인프런 커뮤니티 질문&답변

언젠가는프리님의 프로필 이미지
언젠가는프리

작성한 질문수

PHP 개발자의 최종 테크트리, 라라벨 강의

컨트롤러 안의 클래스의 설명과 _construct, protected 변수, bind, singleton 을 사용하는 것을 실습하여 봅니다.

The /var/www/html/bootstrap/cache directory must be present and writable.

작성

·

407

0

 위처럼 에러가 발생되는데 어느부분을 확인해야 강의처럼 오류없이 표기될까요?

 

아래는 작성한 코드입니다.

Acontroller.php

class Acontroller extends Controller
{
    //클래스 안에서만 쓸수 있는 내부 함수
    protected $result;
    protected $basecontroller;

            //내부함수의 기본값을 설정하는 __construct
    public function __construct(Basecontroller $basecontroller)
    {
        $this->basecontroller = $basecontroller;
    }
    public function multple($num)
    {
        $this->result += $this ->basecontroller->plus($num) * 10;
        return $this->result;
    }
}

Basecontroller.php

class Basecontroller extends Controller
{
    //클래스 안에서만 쓸수 있는 내부 함수
    protected $result;

            //내부함수의 기본값을 설정하는 __construct
    public function __construct()
    {
            $this->result = 0;
    }

    public function plus($num){
        $this->result = $num + 5;
        return  $this->result;
    }
}

Aprovier.php


class Aprovider extends ServiceProvider
{
    /**
     * Register services.
     */
    public function register()
    {
        //
        $this->app->singleton(Acontroller::class, function($app){
            return new Acontroller($app-> make(Basecontroller::class));
        });
    }

    /**
     * Bootstrap services.
     */
    public function boot()
    {

    }
}

app.php

    'providers' => ServiceProvider::defaultProviders()->merge([
        /*
         * Package Service Providers...
         */

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        // App\Providers\BroadcastServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,
        App\Providers\Aprovider::class,
    ])->toArray(),

 

web.php

Route::get('/one', function () {
    for($i=0; $i < 3; $i++){
        echo app(Acontroller::class)->multiple(2);
        echo "<br>";
    }
    return "-----";
});

 

답변 1

0

백승철님의 프로필 이미지
백승철
지식공유자

음.... 프로젝트를 다운 로드 받는 중에 권한 문제가 꼬인 것으로 추정 됩니다.

위에서 알려준 경로의 파일에 쓸수 있는 권한이 없어서 그런데

sail artisan cache:clear

또는

프로젝트 루트에서 sudo chmod -R 777 bootstrap/cache/ 명령어를
입력해 보셔야 할 것 같습니다.

이는 리눅스 명령어라서 조금 어려우실 수 있습니다.

언젠가는프리님의 프로필 이미지
언젠가는프리

작성한 질문수

질문하기