autoload with composer spl_autoload_register 를 직접 명령어로 구현하는 것이 아니라 composer를 통해서 라이브러리를 설치하는 경우 자동으로 autoload.php가 설치된다 ( 경로 : vendor/autoload.php ) 이때 composer.json 파일에 { "require": { "slim/slim": "3.0", "monolog/monolog": "^1.23" }, "autoload": { "psr-4" : { "App\\": "app" } }} 처럼 autoload를 등록하면 app 이라고 사용되는 폴더를 App 이라는 namespace 를 통해서 사용할 수 있다. /app/Test.php
autoload require, include로 파일(혹은 클래스)를 일일이 불러오는 것이 아니라 자동으로 클래스를 인식해서 oop를 쉽게 지원하는 autoload를 지원한다. autoload의 명령어의 이름은 spl_autoload_register 이며 스펙은 다음과 같다 bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] ) callable : 자동로드 기능의 등록, 쉽게 말하면 클래스 명과 같다 thow : 기본값 true, 등록 할 수 없는 경우 예외처리를 throw 하는지의 여부 prepend : 기본값 false, true인 경우 autoload를 추가..
엘로퀀트 ORM(Object-relational mapping) 은 DB작업을 위해서 간단하고 액티브한 레코드 구현이 가능하다. MVC중 Model 클래스에 해당하며, 가장 큰 장점은 특정 DBMS 종류와 관계없이 작업이 가능하다. 익숙해지면 생산성이 매우 높아지며 개발의 수정및 유지보수가 쉬워진다. "설정보다 관례(CoC; Convention Over Configuration)" 철학에 입각하여 설계되었으며 CoC는 설정이 최소화되고 사용이 쉬운 장점이 있지만 관례를 모르면 왜 이렇게 동작하는지 알수 없는 단점이있다. Illuminate Database 구성 요소는 표현형 쿼리 빌더, ActiveRecord 스타일 ORM 및 스키마 빌더를 제공하는 PHP 용 전체 데이터베이스 툴킷입니다. 현재 MySQ..
[MySQL] alter table 명령어 ( foreign key ) ※ 경고 높이뜬새의 모르는 사람이 없는 팁시리즈 입니다. 이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다.alter table 명령어를 대충 살펴보는 과정에서 foreign key 부분만 빠져서 없는 실력으로 쪼금 보충하려 합니다. 저번에도 말씀 드린 바 있듯이 제 나름대로의 정리 과정이라 이해해 주시기 바랍니다. 우선 foreign key는 외래키, 참조키등으로 해석되는데요. 참조되는 테이블의 기본키(pirmary key)나, 유니크(unique)제약이 설정된 column 만을 참조하기 때문에 참조키라는 말도 맞습니다. 그리고 본디 자신의 키가 아니고, 외부에서 뽀려온 키이기 때문에 외래키라는 말도 맞습니다. 저는 여기서는 외래..
Slim Framework 3 Skeleton Application 뼈대가 되는 Skeleton을 사용하면 Slim Framework 3 를 신속하게 설정하고 작업 시작이 가능하다. 최신 Slim 3를 PHP-View 템플릿 렌더러와 함께 사용하며, Monolog logger도 사용한다. Install 컴포저 : composer php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php php -r "if (hash('SHA384', file_get_contents('composer-setup.php')) === 'fd26ce67e3b237fffd5e5544b45b0d92c41a4afe3e3f778e942e43ce6be197b..
php 웹페이지 엑세스 솔루션들 PHP 포함 파일에 직접 액세스하지 못하게합니다. Answers Apache 서버에서 실행되는 PHP 응용 프로그램을 실행하는 가장 쉬운 방법은 디렉토리에 포함을 넣고 .htaccess 파일의 해당 디렉토리에 대한 액세스를 거부하는 것입니다. 인터넷 검색의 문제를 해결하려면 아파치를 사용하는 경우 액세스 할 수 없도록하려는 디렉토리에 ".htaccess"라는 파일에 넣으십시오.Deny from all 실제로 서버를 완전히 제어 할 수 있다면 (요즘은이 답변을 처음 작성했을 때보 다 작은 응용 프로그램이라도 더 일반적입니다), 가장 좋은 방법은 웹 서버가 제공하는 디렉토리 외부에서 보호하려는 파일을 붙이는 것입니다 . 따라서 앱이 /srv/YourApp/ 에 있으면 /srv..
빌드 패키지 직접 구성해보기 ( sass + concat + minifier ) # nodejs plugins CLI use nodejs plugins bundler to try CLI ## Feature - npm - node-sass - concat - minifier ### Installation ```sh > npm install -g npm > npm install node-sass --save-dev > npm install concat --save-dev > npm install -g minifier --save-dev ``` ### Plugins | Plugin | URL | | ------ | ------ | | node-sass | [https://github.com/sass/node-..
json 한글이 ?로 깨질때 php에서 json값을 출력할때 header에 charset utf-8 로 지정해줘도 한글이 ??? 로 표시될때가 있다. header("Content-type: application/json; charset=utf-8"); echo json_encode($res); 원인 : json에서 값 받아올때 DB에서 캐릭터셋이 지정되어있지 않은경우이다.DB connect 할때 charset 을 지정하는 옵션에서 utf8 로 지정해 주어야 한다. mysqli$conn = new mysqli("localhost", "root", "", "test"); if ( $conn->connect_errno ){ die("Could not connect to database!"); } /* chan..