php 생활코딩 2019.03.01
생활코딩 따라하기 WEB2 - PHP _ CRUD를 FILE로 구현해보기
별도의 실습과정을 포스팅 할까? 하다가.. 아무래도 이고잉 동영상만큼 깔끔할 수는 없을 것 같고 괜한 시간 낭비일 것 같아 생략하기로 했다. 다만 나중에 기억을 최대한 빨리 회상할 수 있도록 학습 과정에 정리해둔 키워드들을 블로그에 포스팅 해두기로 한다. 한가지 더 기분좋은 일은 막연했던 PHP 학습의 방향을 찾을 수 있었다는 점이다. 교양 수업 이후 갈 방향은 라라벨에 등반하는 일이다. 그 과정에서 새롭게 변화하고 있는 PHP 7.x와 MySQLi 등 새로운 데이터베이스 활용방안, PHP MVC 개발방식 등을 채득할 수 있을 것으로 기대된다. 다만 바로 라라벨에 가기 전에 생활코딩에서 준비 운동을 차분히 다 마치고 등반을 나설 예정이다! 두근구든 고고~ 실습 내용 : https://opentutorials.org/course/3130 실습 결과 : http://127.0.0.1:8080/index.php ( <— MAMP 실행 후, 브라우저 주소 창에 입력 ) 개발 환경 : MAC OS |
비트나미 설치
비번 설정 : e~7
MAMP MYSQL port 조정 : 중복을 방지하기 위해 7 -> 3
php 환경설정 조정
1.경로
apache2/php/etc/php.ini
2. 조정
1) 에러 표시 켜기 ; 실 서비스 시에는 off
display_errors = on
2) 성능 최적화 끄기 ; 실 서비스 시에는 1
opcache.enable=0
php 동작 원리
웹서버(아파치) 는
정적 파일(html)이 들어오면,
자신이 처리해서 웹 브라우저에 바로 회신한다.
그 외의 파일(php)이 들어오면,
처리할 수 있는 곳(php)으로 처리를 위임한다.
php(공장)는
<?php ?>에 해당 하는 부분(재료)을
정적 언어로 생성(제품)하여 ( 그 과정에서 php는 모두 사라진다 )
웹서버에게 전달하고
웹서버는 php에게 전달받은 정적언어를 웹 브라우저에 회신한다.
일반 상식
expr 값이 되는 것이 올 수 있다.
statement 일반 코드의 서술
argument(구체적인 표현식 = 실제 입력한 값 : 2,4 )
parameter( 직접 받아서, 매개해서 함수 안에서 사용하는 변수 : $left, $right )
php 문법
PHP supports data types. 지원하는 데이터 타입 ?
http://php.net/manual/en/language.types.intro.php
적용 구간
<?php 내용; ?>
단순 출력
echo = print()
문자열 더하기
“문장”.”문장”
문자열 개수 새기
strlen()
변수 선언
$변수이름
GET parameter
url로 넘어온 파라미터 이름의 값 = domain.php?name=홍길동
$_GET[ ' name ' ]
html 의 pre 처리
nl2br(“작성된 코드 내용에 대한 줄바꿈을 반영하여 정적코드 생산시, 자동으로 <br/> 처리”);
(연산 결과에 따른) 데이터 타입 출력 (개발 과정에서 사용)
var_dump( )
= print_r( )
boolean type 출력
isset( )
디렉토리 안에 있는 파일 ‘이름’ 을 배열에 담기
scandir( )
포스트 파라미터
$_POST[ ' name ' ]
파일 저장하기
file_put_contents('data/'.$_POST['title'],$_POST['description']);
리다이랙션
header('Location: /index.php?id='.$_POST['title']);
파일 이름 수정
rename('data/'.$_POST['old_title'],'data/'.$_POST['title']);
파일 삭제
unlink('data/'.$_POST['id']);
리펙토링
<?php require('lib/print.php'); ?>
<?php require_once('lib/print.php'); ?>
보안 cross site scripting
<?php echo htmlspecialchars("<script>alert(\"baboya\");</script>"); ?>
보안으로 인한 본문 이미지, 스타일 스크립트 사용에 대한 대응
strip_tags( )
관련 소스 : htdocs.zip <-- 첨부파일을 넣어야할 위치입니다.
|
+ 이고잉 추천
더 알아두면 좋을 것들
데이터베이스
생코 강의 : https://opentutorials.org/course/3167
함수
http://php.net/manual/en/funcref.php
session 회원, 회원 권한관리
http://php.net/manual/en/book.session.php
타사인증 회원 + 보안
federation authentication ( facebook ) php
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/
composer
PHP의 의존성 관리도구
생코 강의 : https://opentutorials.org/course/3018/5221
composer
홈페이지 - https://getcomposer.org/
설치
terminal 에서,
해당 프로젝트폴더에서 composer 설치
디렉토리에서,
composer.json 파일생성
및 Packagist에서 검색한 composer 라이브러리 선언
terminal 에서,
선언한 composer 라이브러리 설치
composer.lock
지금 상태를 기록해둔 것이다. 컴포저 인스톨을 실행했을 때 이 파일이 존재한다면 컴포저는 이 파일에 기술된 라이브러리와 다른 버전의 라이브러리만을 설치할 것
* 컴포저의 메인 저장소
+ b 새로 발견한 배울 것들
: 생코에서 php 공무 마치고 포스팅 할 것들
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
생활코딩 따라하기 WEB2 - PHP _ CRUD를 MySQL로 구현해보기 (0) | 2019.03.04 |
---|---|
삼팔광땡 MYSQL 입문기 - MYSQL 삭제, 그리고 새로운 설치 (0) | 2019.03.02 |
스프링 부트에서 토비 3.1 따라하기 : 1장 - 1.7 DI 의존관계 주입 (작성 중) (0) | 2019.02.28 |
스프링 부트에서 테스트 주도 개발 실습 - 5장. 솔직히 말하자면 (0) | 2019.02.27 |
스프링 부트에서 토비 3.1 따라하기 : 1장 - 1.6 싱글톤 레지스트리와 오브젝트 스코프 (0) | 2019.02.27 |
댓글