CodeIgniter 3을 사용하도록 웹사이트를 업데이트하려고 하는데 CodeIgniter 3.0부터 모든 클래스 파일 이름(라이브러리, 드라이버, 컨트롤러 및 모델)은 Ucfirst와 같은 방식으로 이름을 지정해야 합니다. 즉, 대문자로 시작해야 합니다. 편지.
예를 들어 다음 라이브러리 파일이 있는 경우:
application/libraries/mylibrary.php
... 그런 다음 이름을 다음과 같이 바꿔야 합니다.
application/libraries/Mylibrary.php
드라이버 라이브러리와 확장 및/또는 CodeIgniter 자체 라이브러리 및 핵심 클래스의 재정의에도 마찬가지입니다.
application/libraries/MY_email.php application/core/MY_log.php
위 파일의 이름은 각각 다음과 같이 변경되어야 합니다.
application/libraries/MY_Email.php application/core/MY_Log.php
컨트롤러:
application/controllers/welcome.php -> application/controllers/Welcome.php
모델:
application/models/misc_model.php -> application/models/Misc_model.php
명령줄로 어떻게 할 수 있나요?
감사해요 ,
답변1
Bash 4를 사용하면 먼저 추가 globbing 옵션을 활성화합니다.
shopt -s extglob
이제 이름을 바꾸려는 PHP 파일이 포함된 폴더에서만 이를 호출해야 합니다. 재귀적으로 파일을 찾습니다 .php
.
for f in **/*.php; do
fn=$(basename "$f") # remove directory name
Fn=${fn^} # uppercase first letter
echo mv -- "$f" "$(dirname "$f")/$Fn" # combine both
done
파일 의 경우 MY_
또 다른 실행이 필요할 수 있습니다.
for f in **/MY_*.php; do
fn=$(basename "$f")
Fn=${fn#MY_} # remove MY_ from filename
Fn="MY_${Fn^}" # uppercase first letter and add MY_ again
echo mv -- "$f" "$(dirname "$f")/$Fn"
done
echo
이름 바꾸기를 수행하려면 이 스크립트에서 를 제거하세요 .
답변2
라는 작은 유틸리티를 사용하십시오 mmv
. 다음과 같이 첫 글자를 대문자로 만들 수 있습니다.
mmv "[a-z]*\.*" "#u1#2.#3"
그리고 두 번째 경우( )에 대해서는 MY_log.php
다음과 같이 해결할 수 있습니다.
mmv "*_[a-z]*.php" "#1_#u2#3.php"
또는:
mmv "*_[a-z]*" "#1_#u2#3"