inflearn logo
강의

Course

Instructor

PHP 7+ Programming: Object-Oriented

26 - Routing (Route, Middleware, RequestContext)

http://localhost:8080/posts/1 접근시 배열 0값 표기 오류

396

dhqkgo

7 asked

0

    Route::add('get','/posts/{id}', function($id){
    echo ($id);
    var_dump(Adaptor::getAll('select * from posts where `id`= ?', [ $id ] ));
});

route.php

    public static function add($method, $path, $handler, $middlewares = [])
    {
        self::$contexts[] = new RequestContext($method, $path, $handler, $middlewares);
    }

위처럼 불러와도

배열 표기가 아무것도 안나오는데 어떤부분을 확인해야 강의처럼 내용확인이 가능할까요?

{id}array(0) { } 이렇게만 표기 됩니다.

$id값을 못 읽는것 같은데 어떻게 해결해야 할지 모르겠네요

php 객체지향

Answer 1

0

pronist

안녕하세요.

$id 값을 못 읽어오는 경우, 라우트 주소를 파싱할 때 문제가 발생했을 수도 있습니다. 이럴 때는 RequestContext::match() 를 살펴보는 것이 좋습니다. 강의에 쓰인 원본 소스코드는 다음과 같습니다. 로직이 잘못 처리된 곳이 있는지 점검 후 다시 시도해보시기 바랍니다.

아래의 소스코드는 URL 을 / 로 분리한 뒤, 정규식을 사용해서 파라매터가 요구되는 패턴인지 파악하고 사용자가 요청한 주소와 매핑시켜 처리하고 있습니다.

 public function match($url)
    {
        $urlParts = explode('/', $url);
        $urlPatternParts = explode('/', $this->path);

        if (count($urlParts) === count($urlPatternParts)) {
            $urlParams = [];

            foreach ($urlPatternParts as $key => $part) {
                if (preg_match('/^\{.*\}$/', $part)) {
                    $urlParams[$key] = $part;
                } else {
                    if ($urlParts[$key] !== $part) {
                        return null;
                    }
                }
            }
            return count($urlParams) < 1 ? [] : array_map(fn ($k) => $urlParts[$k], array_keys($urlParams));
        }
    }

패케지스트를 하지 않고 섹션7을 수행할수 있나요

0

90

1

나만의 프레임워크 작성 후, 운영환경 배포에 관한 문의 드려요

0

399

1

35강 미들웨어에서 인증 과정을 Auth클래스로 만들면, 어느 디렉토리에 둘까요?

0

335

1

ios환경에서는 어떻게 설치해야 하나요?

0

445

1

라라벨(php) 배포 문의

0

1651

1

왜 http://localhost/ 로 접근하면 public/index.php 가 실행되나요?

0

2102

1

xdebug 설치

0

667

1

localhost 경로

0

441

1

class not found

1

327

1

namespace class not found 질문

0

466

1

csrfmiddelware 에러 질문입니다

0

363

2

url Parttern Parts 가 무슨뜻인가요?

0

349

1

통합 개발환경 (IDE) 관련 문의

0

246

1

Route 클래스 질문이 있습니다!

0

297

1

모델 User 등에서 속성들을 protected 나 private 으로 설정하지 않는 이유가 있습니까?

0

340

1

안녕하세요 프로젝트를 react와 연동하기에 대해서 여쭈고 싶습니다 :)

1

1377

1

DatabaseSessionHandler.php 에러 해결 부분

0

298

1

안녕하세요. 라우터 서버 연결 질문이 있습니다.

1

281

1

아니 강사님 왜 자꾸 어어 거려요? 진짜 겁나 거슬려 죽겠네 ㅡㅡ 어좀 적당히해요 거슬려 죽겠네 그리고 마이크 좀 좋은거 쓰세요 볼륨이 낮아졌다 커졌ㄷ ㅏ하고 발음도 다뭉개져지고 딕션도 안 좋아서 하나도 안들려요 진짜 개짜증나네

1

572

2

로컬환경에서 개발 후 운영환경으로 배포 시 발생하는 이슈에 대한 문의입니다.

1

574

2

DatabaseSessionHandler 클래스의 gc($maxlifetime) 메소드에 대해 질문드립니다.

2

257

1

Xdebug 설치 후 php index.php 실행하면 오류가 납니다..!

0

1133

1

CentOS 7.* 서버쪽으로 배포를 해보던 중에 질문드립니다.

1

366

1

User 클래스에 대한 질문입니다.

1

186

1