이번에 모듈에 기능을 추가하면서 AWS SDK를 사용해야하는데
SDK가 composer기반 패키지?(packagist로 리다이렉트 되는거 보면 맞는것같습니다)로 배포되는것같더라구요.
모듈은 라이믹스 v2 기반 형태로 제작중인데 모듈에서 어떻게 설치하고 사용해야되는지,
주의사항은 무엇이 있는지 알려주실수 있는 분이 계시다면 감사하겠습니다.
PHP | PHP 8.3 |
---|---|
CMS | Rhymix 2.1 |
이번에 모듈에 기능을 추가하면서 AWS SDK를 사용해야하는데
SDK가 composer기반 패키지?(packagist로 리다이렉트 되는거 보면 맞는것같습니다)로 배포되는것같더라구요.
모듈은 라이믹스 v2 기반 형태로 제작중인데 모듈에서 어떻게 설치하고 사용해야되는지,
주의사항은 무엇이 있는지 알려주실수 있는 분이 계시다면 감사하겠습니다.
1. https://github.com/rhymix/composer-stub 에 나오는 대로 composer.json에 기본 내용을 넣어 놓습니다. 라이믹스 코어에서 사용하는 라이브러리와 중복되거나 충돌하는 것이 설치되지 않도록 하고, 오토로딩 순서를 최적화하여 속도 저하를 막기 위한 기본값입니다.
2. 그 후에는 평소처럼(?) composer require <제작자>/<패키지명> 명령으로 원하시는 패키지를 설치하시면 됩니다. modules/모듈명/vendor/ 폴더 아래에 설치되겠지요. 모듈 내에서는 require_once($this->module_path . 'vendor/autoload.php'); 이런 식으로 오토로딩하여 쓰시면 됩니다.
3. 라이믹스와 중복되거나 충돌하는 패키지는 rhymix/composer-stub에 의해 설치가 차단됩니다. 예를 들어 guzzlehttp/guzzle은 설치되지 않습니다. 그래도 상관없습니다. 라이믹스 코어에서 제공하니까 그냥 쓰면 됩니다.
4. 위의 composer-stub은 라이믹스 최신 버전에서 사용하는 라이브러리에 맞추어져 있으므로, 코어가 업데이트되면 자동으로 버전이 바뀌거나 라이브러리가 추가/삭제될 수 있습니다. 어느 정도 버전 변동이 있더라도 문제가 생기지 않도록, 설치하실 라이브러리의 버전을 너무 구체적으로 명시하지 마시기 바랍니다. 특히 구글 쪽에서 composer.json에 버전을 구체적으로 명시하는 융통성없는 매뉴얼을 자주 살포하는데, 그렇게 하면 업데이트시 충돌 납니다.
5. 코어도 항상 최신 버전으로 유지해야 합니다. composer를 사용할 줄 아는 개발자가 굳이 오래된 버전의 코어를 사용하는 시나리오는 고려하지 않기 때문입니다. (불특정 다수에게 모듈을 배포할 경우 특히 중요한 부분입니다.)