[PHP] Namespace의 범위

TL;DR PHP의 Namespace의 범위는 include, require의 상관없이 해당 파일에서만 영향을 끼친다. Namespace PHP 5.3부터 추가된 같은 이름의 함수, 클래스가 있을 때 네임스페이스로 각각 격리하여 사용할 수 있게 해주는 기능이다. Simple example spaceA.php spaceB.php index.php php index.php로 php를 실행시키면 결과는 다음과 같다. require(‘spaceA.php’) 의 결과가 출력된 1번째 줄을 보면네임스페이스는 index.php에서 선언된 INDEX가 아닌 spaceA.php 파일에서 선언된 …

Laravel 6 to 7 Upgrade

3월 3일 laravel 7이 정식 릴리즈 되면서 기대하던 blade-x, stub, custom casts 등과 같은 기능들이 추가되었다. 지금 열심히 modern php 멤버 분들께서 도큐먼트를 번역중이시니 함께 번역을 하는것은 어떨가 싶다. 이번 글에선 Laravel 6에서 7으로 업데이트할 때 수정되야 하는 사항들을 간략히 정리해보겠다. composer.json “php” 의 버전을  “^7.2.5”, “laravel/framework” 의 버전을 “^7.0″으로 “nunomaduro/collision” 의 버전을 “^4.1″로 “phpunit/phpunit” …

[Laravel 7] Zttp

원문: laravel-news Zttp is coming to Laravel 7 Adam Wathan가 만든 Zttp(Guzzle wapper) 패키지는 Laravel 7에서 새로운 Http 패키지로 선보여 집니다. 이 기능을 추가하기위한 pull request를 보면 Guzzle를 사용할 때보다 약 90%정도 더 좋은 구문을 제공합니다. 새로운 Http에 기본적인 사용 방법에 대한 예시입니다. Taylor의 PR내용을 보면, 이 패키지는 완전 새로운 클라이언트가 아닌 Guzzle 윗 레이어에서 …

[Laravel 7] Custom mutators

TL; TR Laravel 7.x에선 모델의 Property인 $casts에 커스텀된 클래스를 전달해줄 수 있다.[링크] 기존의 Mutators Laravel 7.0의 공개 일자는 2020년 2월로 현재 얼마 남지 않은 상황에 laravel.com/doc/master에 차근차근 새로운 기능들에 대한 문서들도 업데이트 되는 것 같다. 이번에 getVarNameAttribute()와 setVarNameAttribute($value) 를 사용하면서 mutator에 대한 커스텀은 안될까 하여 찾아보다가 master문서에 custom mutators 항목이 추가된 것을 발견하고 곧 7.0이 …

PHPUnit에서 Laravel 에러 메시지 출력 패키지(Collision) 사용

원글 Collision PHPUnit Listener With Laravel ‘Collision‘는 Laravel에서 아래 이미지처럼 상세한 오류 내역을 출력해주는 패키지이다. Laravel로 개발하면서 정말 좋은 기능임을 알고있었지만, phpunit과 같은 외부 테스트 도구들을 통해 테스트할 때 오류가 발생해도 아래 이미치 처럼 단순히 Exception stack만 보여줘 ‘Collision’ 처럼 자세한 내용을 제공 받지 못해 아쉬웠던 적이 더러 있었다. 하지만 작년 12월 31일 Collision 패키지 …

[PHP] 폴더 내에 모든 파일을 autoload하는 방법

라라벨에서 custom helper 함수를 추가할 땐 “app/helpers/helper.php”와 같은 파일을 만들고 아래 json과 같이 그 파일을 composer.json에 “files”에 추가해주어야 한다. 다만 하나의 file을 추가할 때는 괜찮아 보이지만 만약 추가해야하는 custom helper가 많아질 수록 관리도 힘들고 일일히 추가해야 하는 번거로움도 있다. 이럴때 폴더 단위로 app/Helpers/* 와 같이 로드되면 좋겠지만 composer의 files는 단일 파일만을 지원하며 * 와같이 여러 …

[VSCode] NPM Rename Permission Error

NPM Rename permission error VScode에서 WSL Remote를 지원하면서 NPM을 이용한 패키지 관리도 VSCode 상에서 진행을 하는중 https://github.com/Microsoft/WSL/issues/2097 이슈처럼 계속 Rename 권한 이슈때문에 npm install이 진행되지 않는다.. 해결 방법은 단순한데 VSCode를 끄고 npm install을 진행하면 된다.VSCode가 실행되는 중에 npm install을 사용하면 VSCode의 폴더를 캐싱하는 부분과 겹쳐지면서 파일 쓰기가 되지 않아 생기는 문제로 보여진다. 이 문제로 고생하는 …

[번역] 스팸과 싸우는 5가지 방법

원본글 : 5 Ways of Battling Form Spam 만약 여러분이 웹 어플리케이션을 만든다면, 스팸 봇들에게 점렴당하는 것들을 막을순 없을것입니다. 내 프로젝트 중 하나는 회원가입 폼 부분을 당해서 17,000여개의 가짜 유저을 정리하는 것은 정말 힘들었습니다.이를 해결 하기위해 스팸 봇과 싸우는 방법을 트위터에 물어보았고, 많은 반응과 좋은 아이디어들을 얻을 수 있었습니다.나는 언급된 방법들을 공유해 만약 여러분이 공격 …