PHP 7

[PHP/Apache] geoip

$_SERVER['MM_COUNTRY_CODE'] $_SERVER['MM_REGION_CODE'] $_SERVER['GEOIP_REGION'] 이런 코드를 본 적이 있다. 리퀘스트 헤더로 불러오는게 아니라 server ? GeoIP 란 MaxMid 에서 제공하는 모듈과 IP 정보 DB를 통해서 웹에 접근하는 IP의 국가별로 확인할 수 있는 오픈 소스 솔루션 이다. GeoIp 라이브러리로 서버에 접근하는 IP를 국가별로 제한, 허용할 수 있다고 한다. MaxMid 에서 제공하는 모듈과 IP 정보는 아래 링크에서 확인 https://dev.maxmind.com/geoip/release-notes/2022#geoip-legacy-databases-have-been-retired GeoIP2 Release No..

PHP 2023.08.31

[Laravel/PHP] Scope ?

라라벨에서 Scope를 붙여서 사용하는 함수를 보았다. 따로 필터가 있는 것도 아닌데 Scope가 자동 처리되는 것 같아서 찾아보았다. Laravel 프레임워크에서 Scope를 생성해서 이용하자. 라라벨은 일부 조건을 더 많이 재사용 해야 하는 상황이 발생할 수 있는데, Laravel 모델에 Scope를 쉽게 통합할 수 있는 방법이 있다. Laravel은 조건을 읽기 쉽고 재사용 가능한 문장(Scopes)으로 정리하는 솔루션을 제공한다. # Laravel 에서의 범위 작성 프로젝트 관리 애플리케이션을 구축하고 있으며, 다양한 위치에서 완료된 모든 프로젝트를 가져와야 한다고 가정한다. 다음 조건을 사용하여 완료된 프로젝트를 검색할 수 있다. $completedProjects = Project::where(..

PHP 2022.12.12

PHP 구성

함수형 프로그래밍 php는 자기 스스로 다시 호출하는 재귀 호출(recursion)도 지원하지만, 대부분의 PHP 코드는 재귀보다는 반복(iteration)하는 형태로 작성 메타 프로그래밍 Reflection API와 특수 메서드(Magic Method)같은 메커니즘을 통해서 다양한 형태의 메타 프로그래밍을 지원. __get(), __set(), __clone(), __toString(), __invoke() 등 개발자가 클래스의 동작에 끼어들 수 있도록 해주는 다양한 특수 메서드 존재. 네임스페이스 서로 다른 PHP 라이브러리에 같은 이름의 클래스가 포함되어 있을 수 있다. 두 라이브러리가 같은 네임스페이스를 사용한다면 서로 충돌이 발생하여 문제가 될 수 있음. -> 네임스페이스 기능은 이런 문제를 해..

PHP 2022.08.16

PHP 디자인 패턴

디자인패턴 이란? 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것. 간단히 말해 소프트웨어 설계할 때 또는 프로그램 개발과정에서 특정 부분에서 많이 발생하는 문제를 정리하여 상황에 따라 해결할 수 있는 해결책(패턴) * 패턴 : 다양한 소프트웨어들로 각기 다른 프로그램을 개발하는 과정에서 공통적인 문제점 또는 유사한 문제점이 존재하여 이를 처리하는 과정도 공통점이 있는데 이러한 유사점을 패턴이라고 한다. 더 우아하고 더 빠른 개발을 할 수 있다. 디자인패턴 구조 - 콘텍스트(context) 문제가 발생하는 여러 상황. 즉, 패턴이 적용될 수 ..

PHP 2022.08.15

모던 PHP 란?

모던 : 현대적인 의미로, 과거와 이전의 비교가 필요하다. after & before 가 필요하다는 뜻 PHP 2012.03 composer & PHP WebServer & PSR ( PHP 5.4 ) 2012.10 Laravel 2013.06 MySQL functions ( PHP 5.5 ) 2014.08 constant value ( PHP 5.6 ) 2016.12 class constant ( PHP 7.1 ) 2017.11 Object Type hinting ( PHP 7.2 ) 2012 년 컴포저 등장으로 컴포넌트 기반으로 작업 가능, PSR(표준 권고 추가) 코드 결과를 예측하기 힘들었던 점을 Type Hinting(타입 힌팅)의 강화로 엄격한 코드를 작성하여 예측하기 쉽고 리팩토링이 편하게 ..

PHP 2022.08.14
728x90