PHP 프로젝트를 이용할떄 Composr 를 이용해서 본인이 사용한 작성한 클래스를 불러와 사용하는 방법에 대해 서술한다. 


절차:


0. composer 설치및 composer init

1. PSR-4 표준에 맞는 폴더구조로 클래스파일과 함께 생성 (이때 네임스페이스에 주의한다)  

2. composer.json 에 폴더 연결 

"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php",
"tests/PassportTestCase.php"
],
"psr-4": {
"Tests\\": "tests/"
}
},

3. composer auto-dumpload 를 하면 클래스 위치들을 맵핑해주는 파일이 자동 생성된다.

4. 클래스를 사용하고자 하는 파일에서 autoload.php 파일 로드


** 주의점:

1. 클래스명과 파일명이 일치

2.한파일에는 클래스 하나만 존재


예제 파일구조를 본다

src

autoload.php

index.php

Users

User.php

UserDetail.php



index.php 에서 사용하자하면

require("./autoload.php")


- User.php 

<?php namespace Users;


class User { }


- UserDetail.php 

<?php namespace Users;


class UserDetail { }


- index.php


<?php

use Users\User;

$user = new User();








'PHP > PHP 문법' 카테고리의 다른 글

설치된 PHP가 threadsafe 혹은 nonthreadsafe 인지 알아내는법  (0) 2016.07.23
DB접속 (MySQL 기준)  (0) 2016.04.21

ES5.1

var myobj = (function () {

    // private members

    var name = "my, oh my";

    // implement the public part

    return {

        getName: function () {

            return name;

        }

    };

}());

myobj.getName(); // "my, oh my"



메모리 아끼는법 

function Gadget() {

    // private member

    var name = 'iPod';

    // public function

    this.getName = function () {

        return name;

    };

}

Gadget.prototype = (function () {

    // private member

    var browser = "Mobile Webkit";

    // public prototype members

    return {

        getBrowser: function () {

            return browser;

        }

    };

}());

 

 

ES6 

class Gadget {

var name = 'iPod'

getName() {

return name; 

}



static getBrowser() {

  var browser = "Mobile Webkit";

  return browser;

  }

}

 

 

ES2021+

class Gadget {

  #name = 'iPod'

  getName() {

  return name; 

  }
}

 

참조: 

http://www.2ality.com/2016/01/private-data-classes.html

3.x 버전대가 2016년 12월을 기준으로 종료된다기에 기존 3.2.9 버전의 스프링에서 4.x 버전대로 마이그레이션을 시도하였다.


다행히도 기존 진행하는 프로젝트에서 3.x 


Pom.xml 에서 주의해서 

<properties> <java-version>1.8</java-version> <org.springframework-version>4.3.5.RELEASE</org.springframework-version> <org.springframework-security-version>4.2.0.RELEASE</org.springframework-security-version> </properties> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- MappingJacksonJsonView --> <!-- <dependency> --> <!-- <groupId>org.codehaus.jackson</groupId> --> <!-- <artifactId>jackson-mapper-asl</artifactId> --> <!-- <version>1.9.13</version> --> <!-- </dependency> --> <!-- <dependency> --> <!-- <groupId>org.codehaus.jackson</groupId> --> <!-- <artifactId>jackson-core-asl</artifactId> --> <!-- <version>1.9.13</version> --> <!-- </dependency> -->


다른 Configuration  파일들도 schemaLocation 부분에 수정을 해주었다. xxx-3.0.xsd 로 로된부분을

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    					http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd">
        
</beans>


자동으로 인식하도록 숫자부분을 아래와 같이 변경했다.

http://www.springframework.org/schema/context/spring-context.xsd



resources 부분도 아래와 같이 변경했다.

<mvc:resources location="/public/" mapping="public/**"/>
<mvc:resources location="/css/" mapping="css/**"/>
<mvc:resources location="/images/" mapping="images/**"/>
<mvc:resources location="/js/" mapping="js/**"/>


JacksonJsonView를 사용하지 않기때문에 주석처리하였다 사용하기 위해서는 2버전을 사용해야한다.

<!-- <bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> -->


이렇게 하여 마이그레이션이 완료되었다.

마이그레이션은 프로젝트 마다 케이스바이 케이스기 떄문에 스프링버전에 의존하는 라이브러리가 없나 살펴보아야한다.

더 자세한 마이그레이션 관련은 아래에 링크된 스프링 공식홈페이지의 깃허브를 참조한다. 


참조:

1. https://github.com/spring-projects/spring-framework/wiki/Migrating-from-earlier-versions-of-the-spring-framework

'Java > Spring Framework' 카테고리의 다른 글

Spring 한글설정  (0) 2015.03.19
Spring AOP  (0) 2015.01.19
스프링 스터디 - 의존성 주입 대상  (0) 2015.01.14
스프링 학습 개발 도구 설치  (0) 2015.01.13
프레임 워크 배우기 좋은 웹사이트  (0) 2014.11.04

파이썬 디버깅시 유용하게 사용하는 Ipdb로 디버깅하는 도중 루프안에 같혀 강제 종료해야할 경우 

아래 혹은

import sys
sys.exit()

아래의 방법으로 시도한다 (2.7과 3.5 버전의 경우 현재 확인결과 아래 방법으로 작동되었다)

import os
os._exit(0)


본래 서버 개발자이지만 이번에 양기종 앱을 개발할일이 생겨 하이브리드 어플리케이션을 개발하였는데 앱스토어 관련 삽질을 많이 하게되었다.


최초 앱을 업로드하고 앱스토에 업데이트 버전을 올릴때 주의할점을 이야기해본다. 


처음 업데이트된 Binary 버전을 업데이트하고 앱스토어에서 추가로 업데이트된 버전에 대해 설정을 해주어야했다

기존 안드로이드 구글 플레이스토어처럼 업로드만 하면 자동으로 될거란 생각에 기다리가다가 업데이트가 되지 않길래 

확인해보았더니 아래 화면의 빨간영역의 버튼과 같이 버전추가를 Xcode에서 바이너리 코드 업로드후수동으로 해주어야했다. 


저와같이 처음 앱을 개발하는 분들은 이런삽질을 안하길 바라며 블로깅한다.


+ Recent posts