inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

WP 전반적인 질문입니다.

해결됨

워드프레스 제대로 개발하기 - 클라이언트 편

안녕하세요. Admin 편부터 들었다면 하지 않았을지도 모르고, 혹은 Client 를 다 들으면 자연스레 알게 될지도 모를 질문입니다. 그럼에도 불구하고 큰 흐름을 모르는 채 상세한것부터 하려니 너무 모호해 보여서 질문을 먼저 드리게 되었습니다. (현직 개발자니, 너무 상세하게 설명하는 수고로움은 넣어두셔더 될거 같아요) 1. 강의 초반에 wp-content/themes 에 mytory-bookstore 를 추가하면서 시작했던걸로 기억하는데요. opensource 테마를 다운받아서 커스텀 가능한걸로 알고 있는데, 강의에 포함된 twentytwenty# 형태의 테마들도 구조가 굉장히 다른데요. 각 테마별의 document 를 참조해서 수정하게 되는걸까요? 테마 커스텀을 하려면 테마와는 상관없이 wp core 에서 제공하는 특정 포인트에 add_action , add_filter 등 여러 함수를 써서 수정하는건가요? 2. 강의에서 사용하는 테마의 entry point 가 mytory-bookstore/index.php 일거 같은데, php 에서 functions.php 를 어떻게 읽게 되는건지를 모르겠네요. (index.php 는 functions.php 를 include 안해서) 3. add_action 등에 사용하는 hook_name 은 wp core 에 따라서 고정인가요? [출판사 분류추가] 강의를 보면 functions-taxonomy.php 처음에 add_action('init' function() { 을 하고 있는데요. 이런 init 같은 hook_name 이 core 에 따른 고정인지 궁금하네요.

  • wordpress
  • php
Ikostar 댓글 1 좋아요 0 조회수 479

csrfmiddelware 에러 질문입니다

해결됨

PHP 7+ 프로그래밍: 객체지향

Undefined property: stdClass::$csrfToken in /Users/ywkim/StudyPHP/php_blog/app/Middlewares/CsrfTokenMiddleware.php:12 Stack trace: #0 /Users/ywkim/StudyPHP/php_blog/app/Middlewares/CsrfTokenMiddleware.php(12): App\Providers\ErrorServiceProvider::App\Providers\{closure}(8, 'Undefined prope...', '/Users/ywkim/St...', 12, Array) #1 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Routing/RequestContext.php(82): App\Middlewares\CsrfTokenMiddleware::process() #2 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Routing/Route.php(36): Eclair\Routing\RequestContext->runMiddlewares() #3 /Users/ywkim/StudyPHP/php_blog/app/Providers/RouteServiceProvider.php(17): Eclair\Routing\Route::run() #4 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Application.php(32): App\Providers\RouteServiceProvider::boot() #5 [internal function]: Eclair\Application->Eclair\{closure}('App\\Providers\\R...', 4) #6 /Users/ywkim/StudyPHP/php_blog/vendor/heracles8562/eclair/src/Application.php(32): array_walk(Array, Object(Closure)) #7 /Users/ywkim/StudyPHP/php_blog/public/index.php(7): Eclair\Application->boot() #8 {main} <script> const $delete = document.getElementById('delete') $delete.addEventListener('click', () => { alert('/posts/' + '<?=$post->id?>'); fetch('/posts/' + '<?=$post->id?>', { method: 'delete', body: JSON.stringify({ _csrfToken: '<?=$_SESSION['CSRF_TOKEN']?>' }) }).then(() => { window.location = '/' }) }) </script> //delete post Route::add('delete', '/posts/{id}', '\App\Controllers\PostController::destroy', [ AuthMiddleware::class, RequireMiddleware::class, CsrfTokenMiddleware::class ]); script부분도 강사님꺼 복붙해서 똑같은데 라우터에CsrftokenMiddleware::class 만 추가하면 에러가 납니다. csrf 미들웨어 들어가있는 다른 라우터는 문제가 안되는데 delete할 때만 저렇게 에러가 나고 삭제처리가 안되네요.. 왜그런지 알 수 있을까요

  • oop
  • php
akffkqlxmfehfkwl 댓글 2 좋아요 0 조회수 394

비주얼 스튜디오 코드 관련 질문입니다.

미해결

vsc에서 함수에 커서를 두고 F12를 누르면 그 함수가 정의된 곳으로 이동을 하는데요 자바스크립트 함수를 찾고 싶은데 js파일 간에 찾는건 되는데 .php파일에 선언 된 함수는 찾지를 못하네 예를 들어 function.php파일에서 aaa라는 함수를 선언하고 test.php파일에서 aaa함수를 호출한다고 했을 때 test.php파일의 aaa함수에 커서를 두고 F12를 누르면 function.php파일로 가야 정상인데 작동을 하지 않네요ㅠㅠ 해결 방법이 없을까요?

  • vsc
  • php
  • js
노인균 댓글 0 좋아요 0 조회수 227

php 회원가입 db 질문 드립니다.

미해결

Fatal error : Uncaught Error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in C:\Apache24\htdocs\dbcon.php:8 Stack trace: #0 C:\Apache24\htdocs\index.php(2): include() #1 {main} thrown in C:\Apache24\htdocs\dbcon.php on line 8 . APM 환경에서 php로 회원가입을 구현하고 싶은데 위와 같은 오류가 뜹니다. 오류 문장에 언급된 php 파일 첨부합니다.. 찾아봐도 잘 안 나오고 뭐가 문제인지 모르겠습니다. ㅇ위에서 말한 line 8은 아래입니다. 오래 붙잡았는데도 도저히 모르겠습니다.. 도와주시면 감사하겠습니다. $options = array ( PDO ::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ); dbcon.php <?php $host = 'localhost' ; $username = '' ; $password = '' ; $dbname = 'userdb' ; $options = array ( PDO ::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ); try { $con = new PDO ( "mysql:host={ $host };dbname={ $dbname };charset=utf8" , $username , $password ); } catch ( PDOException $e ) { die ( "Failed to connect to the database: " . $e -> getMessage ()); } $con -> setAttribute ( PDO ::ATTR_ERRMODE, PDO ::ERRMODE_EXCEPTION); $con -> setAttribute ( PDO ::ATTR_DEFAULT_FETCH_MODE, PDO ::FETCH_ASSOC); if ( function_exists ( 'get_magic_quotes_gpc' ) && get_magic_quotes_gpc ()) { function undo_magic_quotes_gpc ( & $array ) { foreach ( $array as & $value ) { if ( is_array ( $value )) { undo_magic_quotes_gpc ( $value ); } else { $value = stripslashes ( $value ); } } } undo_magic_quotes_gpc ( $_POST ); undo_magic_quotes_gpc ( $_GET ); undo_magic_quotes_gpc ( $_COOKIE ); } header ( 'Content-Type: text/html; charset=utf-8' ); session_start (); ? > index.php <?php include ( 'dbcon.php' ); include ( 'check.php' ); if ( is_login ()){ if ( $_SESSION [ 'user_id' ] == 'admin' && $_SESSION [ 'is_admin' ]== 1 ) header ( "Location: admin.php" ); else header ( "Location: welcome.php" ); } ? > <! DOCTYPE html > < html > < head > < title > 로그인 예제 </ title > < link rel = "stylesheet" href = "bootstrap/css/bootstrap1.min.css" > </ head > < body > < div class = "container" > < h2 align = "center" > 로그인 </ h2 >< hr > < form class = "form-horizontal" method = "POST" > < div class = "form-group" style = " padding: 10px 10px 10px 10px; " > < label for = "user_name" > 아이디: </ label > < input type = "text" name = "user_name" class = "form-control" id = "inputID" placeholder = "아이디를 입력하세요." required autocomplete = "off" readonly onfocus = " this . removeAttribute ('readonly'); " /> </ div > < div class = "form-group" style = " padding: 10px 10px 10px 10px; " > < label for = "user_password" > 패스워드: </ label > < input type = "password" name = "user_password" class = "form-control" id = "inputPassword" placeholder = "패스워드를 입력하세요." required autocomplete = "off" readonly onfocus = " this . removeAttribute ('readonly'); " /> </ div > < div class = "checkbox" > < label >< input type = "checkbox" > 아이디 기억 </ label > </ div > </ br > < div class = "from-group" style = " padding: 10px 10px 10px 10px; " > < button type = "submit" name = "login" class = "btn btn-success" > 로그인 </ button > < a class = "btn btn-success" href = "registration.php" style = " margin-left: 50px " > < span class = "glyphicon glyphicon-user" ></ span > &nbsp; 등록 </ a > </ div > </ br > </ form > </ div > </ body > </ html > <?php $login_ok = false ; if ( ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) and isset ( $_POST [ 'login' ]) ) { $username = $_POST [ 'user_name' ]; $userpassowrd = $_POST [ 'user_password' ]; if ( empty ( $username )){ $errMSG = "아이디를 입력하세요." ; } else if ( empty ( $userpassowrd )){ $errMSG = "패스워드를 입력하세요." ; } else { try { $stmt = $con -> prepare ( 'select * from users where username=:username' ); $stmt -> bindParam ( ':username' , $username ); $stmt -> execute (); } catch ( PDOException $e ) { die ( "Database error. " . $e -> getMessage ()); } $row = $stmt -> fetch (); $salt = $row [ 'salt' ]; $password = $row [ 'password' ]; $decrypted_password = decrypt ( base64_decode ( $password ), $salt ); if ( $userpassowrd == $decrypted_password ) { $login_ok = true ; } } if ( isset ( $errMSG )) echo "<script>alert(' $errMSG ')</script>" ; if ( $login_ok ){ if ( $row [ 'activate' ]== 0 ) echo "<script>alert(' $username 계정 활성이 안되었습니다. 관리자에게 문의하세요.')</script>" ; else { session_regenerate_id (); $_SESSION [ 'user_id' ] = $username ; $_SESSION [ 'is_admin' ] = $row [ 'is_admin' ]; if ( $username == 'admin' && $row [ 'is_admin' ]== 1 ) header ( 'location:admin.php' ); else header ( 'location:welcome.php' ); session_write_close (); } } else { echo "<script>alert(' $username 인증 오류')</script>" ; } } ? >

  • apache
  • mysql
  • db
  • php
  • 서버
김지현 댓글 0 좋아요 0 조회수 406

JetBrains에서

해결됨

워드프레스 제대로 개발하기 - 어드민 편

개인용 > PhpStorm만 구매를 하면 되는건가요?

  • wordpress
  • php
LeeGunWoo 댓글 3 좋아요 0 조회수 476

5:30초 부분 결과값이 bool(false)로 나오는 문제

해결됨

워드프레스 제대로 개발하기 - 어드민 편

안녕하세요. 호랭이님 글에 댓글로 질문을 달았다가 성격이 다른 문제 같아서 질문 글을 새로 올립니다. 'has_archive' => true로 값을 변경하였음에도, 결과값이 bool(false)로 나와서 막혔습니다. 첨부 사진이 있어 댓글로 질문 이어가겠습니다.

  • php
  • wordpress
댓글 1 좋아요 0 조회수 363

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

미해결

PHP 7+ 프로그래밍: 객체지향

강사님 강의 잘 듣고 있습니다~ ^^* 역시 후반부에 오니 핵심들이 꼭꼭 쌓여있습니다. 앞에서 잘 설명해 주셨던 것들이 잘 조합되어서, 저의 이해도도 많이 높아 졌습니다. 그런데 궁금한게 User 클래스와 같은 Model을 만드실때, 속성을 protected 나 private으로 미리 선언하지 않고 모델의 메서드 내에서 매직메서드 __set() 을 통한 할당을 함으로써, public 접근이 가능하게 됩니다. 강의에서 말씀하셨듯이 VO나 DTO에 대한 언급을 하지 않는 이유는 이해가 갑니다만, 뷰 등에서 모델의 객체(vo)가 수정되지 않을 것을 보장(immutable)해 주는 것은 중요하지 않습니까? 혹시 별다른 이유가 있는지 궁금해서 질문드립니다. MVC 아키텍처에서 VO가 중요한 이유는 VO가 변하지 않음을 보장하는 것이라고 생각하거든요~^^ 강사님의 다음 라라벨 강의도 기대되네요~ ^^*

  • oop
  • php
  • immutable
  • php
  • oop
  • vo
frea 댓글 1 좋아요 0 조회수 373

서울시뉴딜일자리_IT인턴 3개월 [급여월260만]지원사업안내_빅데이터 기반 서비스플랫폼 과정 [스터디,프로젝트,프론트엔드,백엔드,자바,코딩]

미해결

서울시에서 뉴딜일자리사업 일환으로 2차 서비스플랫폼개발자 양성과정으로 사전 교육 후 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! 자세한 내용은 https://blog.naver.com/kjc_sh/222775806456 참고해주세요

  • 백엔드
  • 프론트엔드
  • 자바
  • 스프링
  • c
  • 인턴
  • 취업
  • php
  • 개발
  • 프로젝트
한국취업센터 댓글 0 좋아요 0 조회수 361

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

해결됨

PHP 7+ 프로그래밍: 객체지향

질문에 앞서 해당 질문은 'CentOS 7.* 서버쪽으로 배포를 해보던 중에 질문드립니다.' 질문과 연관됩니다. 안녕하세요. 이번 강의를 통해 만들어본 프로젝트를 운영환경쪽으로 배포해 보고자 합니다.운영환경 서버 S/W 정보는 아래와 같습니다. [서버 S/W 정보] 1. OS: CentOS 7.9 2. Language: PHP 7.3.27 3. Database: MariaDB 10.4.17 4. Web Server: Apache 2.4 (기본적인 APM 구성을 따르고 있습니다.) 현재 아파치 웹 서버의 가상호스트(VirtualHost) 설정을 통해 부여된 도메인으로 접근이 가능하도록 설정해 놓은 상황입니다. 하지만 사이트 접근 시 500 Error 페이지로 전환됨에 따라 PHP error log를 확인해 본 결과 아래와 같은 에러 메시지가 출력되고 있는 상황이었습니다. PHP Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in {DOCUMENT ROOT}/vendor/painkill2r/inflearn-lecture-lib/src/Application.php on line 27 소스코드를 확인해 보니 Arrow Function에서 문제가 발생하는 것 같아서 문법 지원 버전을 확인해보니 PHP 7.4부터 지원되는 문법으로 확인이 되어 운영환경은 PHP 7.3을 사용하고 있기 때문에 에러 페이지로 전환되는 것으로 원인 파악이 되었는데요. 이런 경우 PHP 버전 업데이트를 하지 않고서는 해결이 불가능한 문제인지 아니면 다른 문법으로 변경을 해서라도 접속이 되게 할 수 있는지 첨언 부탁드립니다. 감사합니다 .

  • oop
  • server
  • php
  • 배포
  • 객체지향
Henu 댓글 2 좋아요 1 조회수 618

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

해결됨

PHP 7+ 프로그래밍: 객체지향

Session을 다루다 추가로 궁금한 것이 있어 여기에 남겨봅니다. 프로젝트에서 SessionHandlerInterface 구현체로 DatabaseSessionHandler 클래스를 사용하는 모습을 볼 수 있고, 이 클래스의 public functoin gc($maxlifetime) 메소드는 만료된 세션을 제거하는 용도로 사용하는 것을 알 수 있었습니다. 시스템 안에서 자동으로 gc($maxlifetime) 메소드가 호출 될 것으로 보이는데요. 이 경우 gc($maxlifetime) 메소드가 호출 될 때 파라미터로 전달되는 $maxlifetime 값(아규먼트)의 경우 php.init에 설정된 session_maxlifetime가 대입되는 것이 맞는지 궁금합니다. (물론 php.ini 설정을 PHP 코드로 하여금 변경할 수 있겠지만요.)

  • php
  • PHP7
  • oop
  • framework
Henu 댓글 1 좋아요 2 조회수 284

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

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요. 프로젝트 강의를 통해 만든 결과물을 실제 리눅스 서버쪽으로 배포를 해보려고 합니다. 서버환경은 아래와 같습니다. ----------------[서버 Spec] ---------------- OS: CentOS 7.9 PHP: PHP 7.3 DB: MariaDB 10.4.17 Web Server: Apache 2.4 ---------------- ---------------- ------------ 서버의 일반 계정을 생성 한 후 아파치 가상호스트(VirtualHost) 설정 파일을 통해 아래와 같이 설정해 보았는데, 500 ERROR 페이지로 전환되고 있어 아파치 에러 로그를 보며 해답을 찾아보아도 해결을 못하고 있습니다. 옛 레거시 PHP 같은 경우 위의 가상호스트 설정만으로도 정상적으로 홈페이지가 열렸는데요. 이 프로젝트가 잘 열리기 위한 추가 설정이 필요한지 궁금합니다.

  • php
  • PHP7
  • oop
  • framework
Henu 댓글 1 좋아요 1 조회수 414

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

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요, 강의를 보며 프로젝트 예제 코드를 따라 타이핑 하면서 궁금한 것이 있어 질문드립니다. 아마 '36-메인(Index)' 강의에서 Post 클래스를 사용함에 있어 생겼었떤 궁금증과 동일할 거 같습니다. '회원가입' 처리를 위해 UserController::store 정적 메소드에서 'POST' 방식으로 넘어온 'email', 'password' 데이터를 User 객체의 프로퍼티(멤버변수)로 설정하는 코드를 볼 수 있었습니다. 하지만 실제 User 클래스에서는 가령 public $email, public $password와 같이 프로퍼티(멤버변수)가 선언되어 있지 않았는데요. 이게 어떻게 가능하게 된건지 원리가 궁금합니다. P.S 저는 Java(SpringFramework)도 함께 공부를 진행중에 있습니다.(실무에서 Java, PHP 둘 다 쓰기에...) Java에서 클래스의 성질과 비슷하다라고 생각하니 이번 강의에서 보여주셨던 코드가 동작하는게 이해가 가지 않더라구요. 미리 답변 감사드립니다.

  • php
  • PHP7
  • oop
  • framework
Henu 댓글 1 좋아요 1 조회수 216

password_verify(string, hash) 함수가 매번 false가 나오는 것에 대한 해결 방법이 궁금합니다.

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요, 프로젝트 '인증' 파트에서 로그인 시 입력하게 되는 이메일과 비밀번호를 AuthController, AuthService를 통해 처리하는 것을 확인 할 수 있었습니다. 저는 현재 PHP 8.0.0 버전으로 코딩을 진행하고 있습니다. 다만, AuthService::login 로직에서 password_verify(string, hash)가 항상 false로 결과 값이 반환되는 것을 확인했습니다. 처음에는 예제 코드를 타이핑하는데 오탈자가 있었나 확인해 보았지만 그런 경우는 없었습니다. 이와 동일한 이슈에 대해 찾아보았으나 여러 개 있었고, 그 중 PHP 8 환경에서의 이슈를 다룬 블로그를 발견했습니다. ( https://blog.naver.com/PostView.nhn?blogId=gwi01304&logNo=222269515571 ) PHP 버전 업데이트가 되면서 해당 함수의 동작 방식이 달라진 것인지 알 수 있을까요? 혹시 몰라서 저의 깃헙 레포지토리 URL을 여기에 공유해 드리겠습니다. GitHub URL: https://github.com/painkill2r/php-oop-project ============================================= 추가적으로 password_verify(string, hash) 함수의 동작 원리에 대해 궁금합니다. PHP Manual에서도 내부 동작 원리가 어떻게 되는지는 기재되어 있지 않더라구요. 첫 번째 인자로 주어진 string 값을 내부적으로 password_hash() 함로 암호화(?)하고, 이를 두 번째 인자와 비교하는게 맞을까요?

  • php
  • PHP7
  • oop
  • framework
Henu 댓글 1 좋아요 1 조회수 377

AuthService::logout 메소드에서 Session 데이터를 비우는 방법에 대한 질문입니다.

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요, '로그아웃' 구현 부분에서 세션을 비우는 처리에 대해 질문드립니다. 만약, 운영중인 사이트를 이용한다고 가정했을 때 아래와 같이 대부분이 로그인 및 로그아웃 절차가 진행된다고 생각합니다. 1. 홈페이지 로그인: 세션에 유저 데이터 생성 2. 홈페이지 이용 3. 브라우저를 닫거나 로그아웃 버튼 클릭: 세션이 완전이 사라지거나, 세션은 있되 세션에서 유저 정보가 비워짐 3번 항목에서 보통 PHP에서 세션을 비울 때(삭제할 때) 아래 두 함수를 쓰는 모습을 볼 수 있었는데요. 1. session_destory() => 전체 세션을 삭제(예로 세션 저장소(파일시스템의 세션 파일 또는 DB의 세션 관리 Table의 세션 데이터)) 2. session_unset() => 세션에서 변수만 삭제(CODE E) $_SESSION = array();) 이 외 세션에서 '유저' 정보만 비우는 경우(CODE EX) $_SESSION['user'] = array();)에는 어떤 경우가 있는지 알 수 있을까요?

  • php
  • PHP7
  • oop
  • framework
Henu 댓글 1 좋아요 1 조회수 396

'routes/web.php'에서 '/' URL에 대한 라우트 설정 시 처리할 Handler 선언에 대한 질문입니다.

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요. '/' URL에 대한 라우트 선언 시 궁금한 점이 있어 질문드립니다. 강의 08:45 부분에서 '/' URL을 처리할 Handler로 '\App\Controllers\IndexController::index'와 같이 선언하는 것을 볼 수 있었습니다. IndexController 클래스의 index() 메소드가 정적 메소드로 선언되어 있으므로 '::'를 사용하는 것은 이해가 되었는데요. '괄호()'를 생략했음에도 오류 없이 동작하는 이유에 대해 궁금합니다. '\App\Controllers\IndexController::index()'와 같이 설정한 경우 오히려 에러가 출력되더라구요. 위 문법과 관련한 관련 자료도 있다면 공유 부탁드립니다. 감사합니다.

  • PHP7
  • php
  • oop
  • framework
Henu 댓글 1 좋아요 2 조회수 252

Session을 생성할 때 sessions 테이블 id 컬럼의 값이 어떻게 결정되는지 궁금합니다.

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요, Sessions 강의를 듣고 궁궁한 것이 생겨 질문드립니다. 강의 내용에서는 SessionHandlerInterface의 구현체 클래스를 선언하여 사용하는 것으로 보이는데요. index.php의 예제 코드 실행시 처음 생성되는 SESSION 데이터가 있으면 sessions 테이블에 세션 정보가 INSERT 되는 것으로 확인이 되었습니다. 하지만 sessions 테이블의 id 컬럼의 값이 자동으로 들어가지는 것을 확인할 수 있었는데요. 이 id은 PHPSESSID에서 가져오는 것 같은데, 그 과정에 대해 알 수 있을까요?

  • php
  • PHP7
  • oop
  • session
Henu 댓글 2 좋아요 2 조회수 637

라우팅 설정 후 페이지 접속 경로에 대한 질문입니다.

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요, 라우팅 강의를 듣고 난 후 궁금한 점이 생겨 질문드립니다. 예제 코드에서 '/', '/posts/{id}'라는 라우팅을 설정해 주셨는데요. 로컬 환경에서 학습한다는 기준으로 PHP 내장서버를 실행시켜 localhost:8000/index.php, localhost:8000/src/Database/Adaptor.php 등으로 접속했을 때에도 이에 대한 접근 불가 설정을 하지 않았으므로 접근이 허용되는 문제가 있었습니다. 이를 해결 하기 위한... 즉, 개발자가 정의한 URL 패턴 외 .php가 붙은 확장자로는 접근이 불가하게 설정할 수 있는 방법이 있을까요?

  • PHP7
  • oop
  • php
  • routing
Henu 댓글 1 좋아요 1 조회수 250

Composer 설정 후 생성되는 .vendor 및 composer.json, composer.lock.json에 대한 질문입니다.

해결됨

PHP 7+ 프로그래밍: 객체지향

안녕하세요, Composer 강의를 학습하던 중 예제 코드들을 Git에 형상관리를 하려고 합니다. 다만, Composer 설정 후 생성되는 .vender 폴더, composer.json, composer.lock.json 파일의 경우 Git으로 형상관리를 시키는게 맞는지, 아니면 이들은 Ignore 설정을 통해 형상관리에서 제외시키는게 맞는지 궁금합니다.

  • PHP7
  • oop
  • composer
  • php
Henu 댓글 1 좋아요 1 조회수 593

return에 대한 질문입니다

미해결

PHP 7+ 프로그래밍: 객체지향

PostController 부분에서 class PostController { /* ..... */ public static function edit($id) { if ($post = Post::get($id)) { $post->isOwner() && Theme::view('post', [ 'post' => $post, 'requestUrl' => '/posts/' . $post->id, 'method' => 'patch' ]); } return http_response_code(404); } /* ..... */ } 다른 함수와 다르게 여기부분만 if문 안에 return을 안해주는 이유가 궁금합니다.

  • oop
  • crud
  • php
차무송 댓글 1 좋아요 0 조회수 221

autoloading error 질문입니다.

미해결

PHP 7+ 프로그래밍: 객체지향

고생하십니다. 새해 복 많이 받으세요 선생님. 코드는 다음과 같습니다. <?php /** * Classes Autoloading (PSR-4) */ // include './Classes/MyClass.php'; use Classes\MyClass; spl_autoload_register(function ($classname) { include $classname . '.php'; }); new MyClass(); 디렉토리 구조는 /Users/chamusong/Desktop/php-oop/functions/SPL/4 Classes-MyClass.php index.php 이렇게 되어있습니다. 오류내용은 다음과 같습니다. PHP Warning: include(Classes\MyClass.php): failed to open stream: No such file or directory in /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php on line 13 PHP Stack trace: PHP 1. {main}() /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:0 PHP 2. spl_autoload_call($class_name = 'Classes\\MyClass') /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:16 PHP 3. {closure:/Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:12-14}($classname = 'Classes\\MyClass') /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:16 PHP Warning: include(): Failed opening 'Classes\MyClass.php' for inclusion (include_path='.:/opt/homebrew/Cellar/php@7.4/7.4.27/share/php@7.4/pear') in /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php on line 13 PHP Stack trace: PHP 1. {main}() /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:0 PHP 2. spl_autoload_call($class_name = 'Classes\\MyClass') /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:16 PHP 3. {closure:/Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:12-14}($classname = 'Classes\\MyClass') /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:16 PHP Fatal error: Uncaught Error: Class 'Classes\MyClass' not found in /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php:16 Stack trace: #0 {main} thrown in /Users/chamusong/Desktop/php-oop/functions/SPL/4/index.php on line 16 오류내용을 보면 경로의 문제인 것 같기도 합니다.

  • php
  • oop
  • autoloading
  • php
차무송 댓글 2 좋아요 0 조회수 333

인기 태그

인프런 TOP Writers

주간 인기글