Posted
Filed under 프로그래밍/PHP
분명히 이렇게 말했다.

모델 디렉토리는 어디에 있나요?

라라벨을 시작할 때, 많은 개발자들이 models 디렉토리가 없는 것에 혼란을 느낍니다. 하지만 이 디렉토리가 없는 것은 의도된 것입니다. 우리는 "모델"이라는 많은 사람들에게 각기 다른 의미로 받아들려지기 때문에 모호하다는 것을 알게되었습니다. 일부 개발자들은 애플리케이션의 "모델"을 비지니스 로직의 전체로서 참조하는 반면, 다른 개발자들은 "모델"을 관계형 데이터베이스와 상호작용하는데 사용합니다.

이러한 이유로, 기본적으로 app 디렉토리를 Eloquent 모델이 저장되는 곳으로 선택했으며, 개발자가 원하는 그 어떤 곳이라도 이 파일들을 배치할 수 있게 허용 하고 있습니다.


그런데...
laravel 8에서 이런게 추가됐네????

New Model Directory

From Laravel 8, the default model directory in app/Models. Before Laravel 8, all the models were in-app directory which was really messy when lots of the model consists in our application. Now Laravel 8 default model directory make it more organized.



으엥~~?

2020/09/18 18:21 2020/09/18 18:21
Posted
Filed under 프로그래밍/PHP
function test2($a, ...$b)
 {
    print_r($b);
 }
test2('a','b','c','e');


결과
Array ( [0] => b [1] => c [2] => e )


2020/09/15 15:48 2020/09/15 15:48
Posted
Filed under 프로그래밍/PHP
캐시를 생성할때 만료시간 기준이 변경되었다.

5.x 에서 캐시 생성
Cache::put('key', 'value', $minutes);


6.x에서 캐시 생성
Cache::put('key', 'value', $seconds);


네??? 뭐라구요???
expire time이 분에서 초로 바뀌었다구요???
5에서 2분 으로 해놨던게 6에서 2초가 되었다....

2020/07/21 12:42 2020/07/21 12:42
Posted
Filed under 프로그래밍/PHP
축약연산자 사용 예제와 사용가능한 버전을 설명해 놓았다.

https://stitcher.io/blog/shorthand-comparisons-in-php

자주 쓸것 같은게 삼항연산자(: ?),널통합연산자(??),결합연산자(<=>)

삼항이야 옜날부터 자주 쓰던거니까...그렇고.
널통합연산자는 변수가 선언이 안되어있을때 선언과 함께 값을 줄수 있어 좋겠다.
결합연산자는 양쪽이 같으면 0, 왼쪽이 크면 1 오른쪽이 크면 -1

2019/04/10 11:11 2019/04/10 11:11
Posted
Filed under 프로그래밍/PHP
php7.3 으로 업그레이드를 했더니 잘되던 composer에서 오류가 난다.
이럴때는 composer self-update 한번 해주면 해결이 되는데
설치되어있는 composer버전이 낮으면 이 명령어 조차 없다.

이얼때는 그냥 composer 최신버전을 내려받아서 다시 설치해준다.

https://getcomposer.org/download

이유는 7.3부터 더이상 switch에서 continue를 사용할수 없다.

https://wiki.php.net/rfc/continue_on_switch_deprecation

2019/03/07 14:39 2019/03/07 14:39
Posted
Filed under 프로그래밍/PHP
brew install composer

2018/07/11 18:45 2018/07/11 18:45
Posted
Filed under 프로그래밍/PHP
node.js 에서 socket.io를 사용해서 채팅 또는 실시간 게임서버를 만드는 경우가 있는데
다들 php로는 불가능한것처럼 얘기한다.

어차피 socket.io,제티,네티,웹소캣 다 비슷한것들이다.

* 라이브러리
Ratchet : http://socketo.me/
ReactPHP : https://github.com/reactphp/socket
Sandstone : https://github.com/eole-io/sandstone

* 예제
https://github.com/php-pure/sacky-server
https://www.youtube.com/watch?v=OHy2zpmsWf8
https://drive.google.com/drive/folders/0B27vVLlLLJ1hcXJ3TmhVXzNvWUk
https://blog.wyrihaximus.net/2015/03/reactphp-sockets/

2018/03/19 12:32 2018/03/19 12:32
Posted
Filed under 프로그래밍/PHP
composer 잘 쓰다가 갑자기 저 오류가 난다...헐
찾아봐도 별다른 방법이 없는데 "composer update --prefer-dist" 이거 해주니까 잘된다.

2017/04/04 16:03 2017/04/04 16:03
Posted
Filed under 프로그래밍/PHP
PHP5 에서 PHP7로 업그레이드 하면서 몽고 클래스에서 오류가 난다.

new \MongoClient();

기존 부분을

new \MongoDB\Driver\Manager();

이렇게 바꿔주면 된다.


2016/12/12 10:56 2016/12/12 10:56
Posted
Filed under 프로그래밍/PHP
1. virtualbox 설치
2. vagrant 설치
3. phpstorm 설치
4. phpstorm -> setting -> vagrant 에서
    instance folder 지정해주고 Boxes에서 +로 기본값 lucid32 추가
5.tools -> vagrant -> Init in Project Root
6.tools -> vagrant -> Up
7.Tools -> Start SSH Session -> vargrant 선택

Getting started with Vagrant in PhpStorm

트러블슈팅 :
프로젝트가 리눅스파티션이 아닌곳에 설치되어있다면 private_key 오류가 발생한다.
이때는 private_key를 리눅스파티션으로 복사를 하고 Vagrantfile 파일을 열고 적절한곳에 아래 내용을 추가한다.

config.ssh.private_key_path = "복사한곳 위치와 파일명"

VAGRANTFILE - VAGRANTFILE SSH SETTINGS

DHCP IP를 할당하고 싶다면 Vargrantfile에 추가

config.vm.network "private_network", type: "dhcp"


ubuntu 16으로 설치 :
box 기본 url은 ubuntu 12버전이다.
16으로 하고 싶을때는 box url을 https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-vagrant.box 으로 입력해준다.

box들은 Vagrantbox.es 에서 찾아볼수 있다.
2016/11/17 12:59 2016/11/17 12:59
Posted
Filed under 프로그래밍/PHP
난 PHPSTORM 을 쓰니까...
플러그인에서 power mode 라고 검색하면 Power Mode II 라는게 있는데 이걸 설치한다.
그럼 아래처럼 타이핑 할때마다 파파파팍~~
너무 심한것 같으면 설정에서 정도를 조절한다.

사용자 삽입 이미지



https://plugins.jetbrains.com/plugin/8251


2016/10/26 11:52 2016/10/26 11:52
Posted
Filed under 프로그래밍/PHP
프로젝트 디렉토리에서 실행 

composer.phar이 없으면 가지고 온다.
 
curl -sS https://getcomposer.org/installer | php
 


guzzle 설치
 
./composer.phar require guzzlehttp/guzzle
 


index.php 에 추가
$container['guzzleHttp'] = function ($container) {
 $client = new \GuzzleHttp\Client();
 return $client;
};


사용은 이런식으로..
 
echo $container['guzzleHttp']->get('http://www.naver.com')->getBody();
 


주의 : AWS SDK를 사용한다면 이미 AWS SDK에서도 guzzle을 로드하기때문에 충돌난다.
이럴때는 그냥 AWS SDK에 포함되어있는 guzzle을 사용하면된다.

참조 : http://docs.guzzlephp.org/en/latest/quickstart.html



2016/09/19 15:34 2016/09/19 15:34