PHP/Composer

카카오톡 알림톡 API를 사용시 프로젝트 생성할때 composer사용

Dev갱이 2021. 12. 23. 11:43
728x90

알림톡은 무조건 대행사를 사용 해야 하는데, 대행사에서 제공하는 api 문서가 잘 되있긴하나, 따로 SDK가 존재 하지 않았다. 그래서 php용 SDK를 직접 만들어서 Packagist.org에 올리는게 목표다.

프로젝트 경로 
KAKAO
  /PAY
    /alimtalk.php
    /history.php

KAKAO 경로에서 composer init명령어 실행.

$ composer init
PS 프로젝트경로> composer init


  Welcome to the Composer config generator



This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [administrator/kakao]: 패키지명
The package name Bizpay/aligo is invalid, it should be lowercase and have a vendor name, a forward slash, and a package name, matching: [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [administrator/kakao]: 패키지명
Description []: aligo sdk
Author [, n to skip]:
Invalid author string.  Must be in the format: John Smith <john@example.com>
Author [, n to skip]: 유저명<이메일>
Invalid author string.  Must be in the format: John Smith <john@example.com>
Author [, n to skip]: 유저명<이메일>
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []:
License []: MIT

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]? no
Add PSR-4 autoload mapping? Maps namespace "Bizpay\Aligo" to the entered relative path. [src/, n to skip]: src/

{
    "name": "bizpay/aligo",
    "description": "aligo sdk",
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "Bizpay\\Aligo\\": "src/"
        }
    },
    "authors": [
        {
            "name": "유저명",
            "email": "이메일"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? yes
Generating autoload files
Generated autoload files
PSR-4 autoloading configured. Use "namespace Bizpay\Aligo;" in src/
Include the Composer autoloader with: require 'vendor/autoload.php';
//완료 후 프로젝트 폴더 구조
프로젝트 경로 
KAKAO
  /PAY
    /alimtalk.php
    /history.php
  /src
  /vendor
    /composer
   autoload.php
composer.json

-git 연동하기

주의 : 하기전에 

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

설정 해주는데 프로젝트마다 다르게 설정 하고 싶으면 --global 빼주면 됨.

 

echo "# Bizpay-Aligo" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin 깃레포주소
git push -u origin main

--- git 연동 완료 ---

 

 

autoload로 내 클래스 불러오는거 테스트중에 에러발생

Fatal error: Uncaught Error: Class 'Bizpay\Aligo\Token' not found in C:\home\www2\insa\KAKAO\PAY\test.php:9 Stack trace: #0 {main} thrown in C:\home\www2\insa\KAKAO\PAY\test.php on line 9

composer.json에 autoload가 src인데 
src/get_token.php라고 클래스 파일을 만들고 

<?php
namespace Bizpay\Aligo;


class Token
{
    
    public static function test()
    {
        return "autoload 성공!";
    }


}
?>

이렇게 class이름이 Token이라서 에러가 남.

autoload 할려면 파일명이랑 클래스명이랑 같게 해줘야함!!!!

 

 

728x90