1

MVC 프레임 워크를 구축 중입니다. PEAR 명명 규칙을 사용하고 있습니다. 수업에는 각 단어의 첫 글자가 국장됩니다.컨트롤러 클래스 명명 규칙 충돌 (PHP)

문제는 컨트롤러 클래스에 도착할 때입니다. 프레임 워크는 URL 경로를 기반으로 컨트롤러를로드합니다. 그러나 URL에 대문자가 필요하지는 않습니다. 이 문제를 해결할 수있는 일반적인 방법이 있습니까?

+0

'ucfirst()'? 구체적인 문제는 무엇입니까? – KingCrunch

+0

@KingCrunch 클래스가 둘 이상의 단어 인 경우, ucfirst는 올바른 캐피 톨 문자와 일치하지 않습니다. 예를 들어 컨트롤러 클래스 이름이 PhotoBooth 인 경우 – dqhendricks

+0

처음에는 대소 문자가 혼합 된 파일 이름을 사용해서는 안됩니다. 이것은 언어 의미론에 대한 단서가없는 프레임 워크 설계자의 끔찍한 사례입니다. 식별자는 PHP에서 대소 문자를 구분하지 않아야합니다. – mario

답변

3

컨트롤러의 이름 (예 : /controller/action/id)을 가져오고 ucfirst()을 사용하여 컨트롤러의 클래스 이름을 가져옵니다. 그것이 일반적인 방법입니다.

+0

ehhh ... 컨트롤러 클래스의 이름이 PhotoBooth 인 경우 어떻게해야합니까? 올바른 케이스를 얻기 위해 ucfirst()를 사용할 수 없습니다. – dqhendricks

+0

그런 다음 각 대문자에 밑줄을 URL에 추가하는 규칙을 사용할 수 있습니다. 그래서 PhotoBooth는'photo_booth/action/..'이 될 것입니다. – halfdan

+0

예 : URL'/ photo-booth' =>'implode ('', array_map ('ucfirst', explode ('-', '사진 부스')))'=> 클래스'PhotoBooth'. 문자열 변환은 일반적으로 어려운 일이 아니지만 좋은 놀이터는 창의적이어야합니다 :) – KingCrunch