728x90
반응형

brew 설치가 안되어있다는 가정으로 brew부터 설치한다

1.homebrew 설치

homebrew 사이트에서 설치할 수 있는 명령어 카피

https://brew.sh/

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

터미널에 명령어 입력

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

설치 후에 brew 입력 시 동작하지 않는다면 환경변수 처리

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

 

2. php 설치

brew를 이용하여 원하는 버전의 php 설치

brew install php@8.1

설치 후에 php 입력 시 동작하지 않는다면 환경변수 처리

echo 'export PATH="/opt/homebrew/opt/php@8.1/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc
brew services restart php@8.1

 

3. composer 설치

공식문서에서 안내하는 방식대로 컴포저 설치

https://getcomposer.org/download/

 

Composer

Download Composer Latest: v2.7.8 To quickly install Composer in the current directory, run the following script in your terminal. To automate the installation, use the guide on installing Composer programmatically. php -r "copy('https://getcomposer.org/ins

getcomposer.org

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

 

php composer.phar 하면 컴포저가 되지만 composer 만 치면 여전히 안됨

아래 명령어를 통해 컴포저를 옮겨줘야함. 경로가 없다고 실패한다면 /usr/local/bin 경로 만들고 하면 됨

sudo mv composer.phar /usr/local/bin/composer

 

그러면 성공 !

 

4. larabel 설치

composer global require "laravel/installer"
vi ~/.bash_profile

.bash_profile을 열어 아래 한줄 추가

export PATH="$PATH:$HOME/.composer/vendor/bin"

추가 후 아래 명령어 입력

source ~/.bash_profile
composer global require laravel/valet
valet install

valet install 에서 이런 에러가 뜬다면

 

아래처럼 하면됨

valet use php@8.1

그럼 진짜 완료

728x90
반응형
728x90
반응형

존경하는 개발자분께 PHP를 개발할때 도움이 되는 문서를 추천받았다.
PHP를 개발하는데 있어서 많은 것을 느끼고 반성할 수 있어서 남기고자 한다!

https://modernpug.github.io/php-the-right-way/

 

PHP: The Right Way 한국어판

쉽게 읽을 수 있는 PHP의 베스트 프랙티스, 코딩 표준, 권위있는 튜토리얼로의 링크를 제공합니다.

modernpug.github.io

1995년에 PHP가 라스무스 러돌프가 처음 공개했는데, 그 이후로 웹 개발에 큰 발전을 가져왔다.
30년 가까운 시간동안 쓰인 언어만큼 웹 상에 PHP과 관련한 무지하게 많은 레퍼런스들이 탄생했다.
그만큼 정확하지 않은 정보가 많았는데 잘못된 PHP 개발 방식을 바로잡고, 과거와 많은 것이 달라진 PHP 8.1 기준으로 현대에 클린하게 PHP를 개발할 수 있는 방법을 가이드하는 문서다.

PHP는 PSR이라고 공식적으로 표준화된 코드 스타일을 제안하고 있는데, 이를 기반으로 단순히 코드 스타일 뿐만 아니라 OS에 따라 PHP를 다루는 솔루션이나 보안, 배포, DB, 문서화 등 여러 방면에서 이상적인 것들을 제안하는 문서라서 PHP 개발 입문이든, PHP를 쓰던 사람이든 한번 읽어보면 많은것을 느낄 수 있다.

 

사설로 작성된 문서인 만큼 뭐든 무조건적인 정설은 아니니 참고하는 것이 좋을 것 같다!

728x90
반응형
728x90
반응형

기존에 pdf 데이터를 만들기위한 라이브러리로 fpdf를 사용했었다.

그러나 fpdf는 유니코드를 제공안해서 utf-8로 변환해서 사용해왔는데,
랲, 벑, 숧 과 같이 조합이 독특한 문자를 해결할 수 없어서 유니코드를 적용하기 위해 알아보던 중, 

tfpdf라는 라이브러리가 기존 fpdf 라이브러리의 확장된 유니코드 사용 가능한 라이브러리인 것을 발견했다. 이를 활용해서 tfpdf 라이브러리로 변경하여 작업을 했는데 아래와 같은 오류가 발생했다. 

 

Fatal error: Uncaught Exception: tFPDF error: Some data has already been output, can't send PDF file in /var/www/swc-####/lib/tfpdf/tfpdf.php:276 Stack trace: #0 /var/www/swc-####/lib/tfpdf/tfpdf.php(1267): tFPDF->Error('Some data has a...') #1 /var/www/swc-####/lib/tfpdf/tfpdf.php(1219): tFPDF->_checkoutput() #2 /var/www/swc-smartsms.aligo.in/shop/order_sheet.html(304): tFPDF->Output('D', 'test.pdf', true) #3 {main} thrown in /var/www/swc-####/lib/tfpdf/tfpdf.php on line 276

 

"일부 데이터가 이미 출력되었습니다. PDF 파일을 보낼 수 없습니다"라는 의미를 갖고 있다. 따로 출력하는 코드도 없어서 의아하긴 했지만 ,, 출력버퍼 오류인거같아서 출력버퍼를 파일 다운로드 직전에 추가하였다.

ob_end_clean();
$pdf->Output('D', 'test.pdf', true);

이렇게 수정하니 정상적으로 작동하는데, 전에 엑셀 관련 작업했을때도 비슷한 경험이 있다.

파일 추출, 다운로드와 같은 작업을 할땐 출력 버퍼의 모든 내용을 정리해야겠다!

 

참고 : http://www.lug.or.kr/files/docs/PHP/function.ob-end-clean.html

728x90
반응형

'IT > PHP' 카테고리의 다른 글

2023년 기준 요즘 PHP 가이드는?  (1) 2023.04.28
PHP Fatal error 컴포저 관련 에러  (0) 2023.02.10
PSR(PHP Standards Recommendations 표준 규약) 2  (0) 2021.05.07
728x90
반응형
에러
[ubuntu@-]: PHP Fatal error: Class UpdateHelper\ComposerPlugin_composer_tmp0 contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Composer\Plugin\PluginInterface::deactivate, Composer\Plugin\PluginInterface::uninstall) in phar:///usr/local/bin/composer/src/Composer/Plugin/PluginManager.php(274) : eval()'d code on line 11
[ubuntu@-]: Fatal error: Class UpdateHelper\ComposerPlugin_composer_tmp0 contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (Composer\Plugin\PluginInterface::deactivate, Composer\Plugin\PluginInterface::uninstall) in phar:///usr/local/bin/composer/src/Composer/Plugin/PluginManager.php(274) : eval()'d code on line 11
[✗] This task did not complete successfully on one of your servers.

 

1차 솔루션

rm -rf vendor
rm -f composer.lock
composer install

해결 안되고 동일현상 발생

rm -rf vendor
rm -f composer.lock
composer update --prefer-source

2차 솔루션

해결 안되고 동일현상 발생

composer 버전을 2로 업그레이드하면서 새로 생긴 kylekatarnls 패키지의 영향으로 에러 발생한 것으로 추측됨

composer 버전 1로 다운그레이드 하니 정상 배포 성공함

728x90
반응형
728x90
반응형

1. PSR-1을 따름

2. 들여쓰기는 tab 대신 space 4칸을 사용

3. 한줄에 [must] 120자 미만 [should] 80자 미만

4. 네임스페이스 선언 후 or use 키워드 사용 후에 한줄을 공백으로 사용

5. 클래스와 메소드를 여는 중괄호 {는 다음줄에 사용하고 닫는 중괄호 }는 body 다음 줄에 선언합니다.

6. abstract 와 final 키워드는 모든 속성과 메소드 앞에 오며 static은 뒤에 옵니다.

7. if, else if 와 같은 control 키워드는 한개의 공백을 두고, 메소드와 함께 호출 시에는 공백을 사용하지 않습니다.

8. if, else if 와 같은 control 키워드 사용 시 여는 중괄호 {는 같은 라인에서 사용하고 닫는 중괄화 }는 body 다음 줄에서 사용합니다.

9.  if, else if 와 같은 control 키워드에서 소괄호 () 안에 공백이 들어가면 안됩니다.

10. php만 사용되는 파일에서는 닫는 태그인 ?>는 생략합니다.

11. php의 키워드들과 상수들은 모두 소문자로 작성합니다. ex ) const, new, throw, true, false, null ..

728x90
반응형

'IT > PHP' 카테고리의 다른 글

PHP Fatal error 컴포저 관련 에러  (0) 2023.02.10
PSR(PHP Standards Recommendations 표준 규약) 1  (0) 2021.05.07
종종쓰는 php 키워드  (0) 2021.04.27
728x90
반응형

1. <?php 와 <?= 태그 사용

  긴 태그인 <?php ?>와 짧은 에코태그인 <?= ?>를 사용

2. BOM(Byte order mark)가 없는 UTF-8을 사용

3. 네임스페이스와 클래스는 오토로딩 표준 PSR-4를 따름

4. 클래스 네임은 StudlyCaps를 따름.

   word의 모든 앞문자가 대문자로 표기

  ex) Contains, PlusResult

5. 클래스 상수는 _으로 구분되는 대문자로 작성

  ex) LAST_VALUE = 0

6. 메소드는 camelCase를 따름

  ex)getName, getPassword

728x90
반응형

'IT > PHP' 카테고리의 다른 글

PHP Fatal error 컴포저 관련 에러  (0) 2023.02.10
PSR(PHP Standards Recommendations 표준 규약) 2  (0) 2021.05.07
종종쓰는 php 키워드  (0) 2021.04.27

+ 최근 게시글