Estoy intentando actualizar mi sitio web para usar CodeIgniter 3, pero a partir de CodeIgniter 3.0, todos los nombres de archivos de clase (bibliotecas, controladores, controladores y modelos) deben nombrarse de manera similar a Ucfirst o, en otras palabras, deben comenzar con mayúscula. carta.
Por ejemplo, si tiene el siguiente archivo de biblioteca:
application/libraries/mylibrary.php
... entonces tendrás que cambiarle el nombre a:
application/libraries/Mylibrary.php
Lo mismo ocurre con las bibliotecas de controladores y las extensiones y/o anulaciones de las propias bibliotecas y clases principales de CodeIgniter.
application/libraries/MY_email.php application/core/MY_log.php
Los archivos anteriores deben cambiarse respectivamente de nombre al siguiente:
application/libraries/MY_Email.php application/core/MY_Log.php
Controladores:
application/controllers/welcome.php -> application/controllers/Welcome.php
Modelos:
application/models/misc_model.php -> application/models/Misc_model.php
¿Cómo puedo hacer eso con la línea de comando?
gracias ,
Respuesta1
Con Bash 4, primero habilite opciones globales adicionales:
shopt -s extglob
Ahora asegúrese de llamar a esto solo en las carpetas que contienen los archivos PHP cuyo nombre desea cambiar. Buscará .php
archivos de forma recursiva.
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
Para los MY_
archivos, es posible que necesite otra ejecución:
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
Elimine echo
de estos scripts para realizar el cambio de nombre.
Respuesta2
Utilice una pequeña utilidad llamada mmv
. Puede poner en mayúscula la primera letra de la siguiente manera:
mmv "[a-z]*\.*" "#u1#2.#3"
Y para el segundo caso que mencionas ( MY_log.php
), esto lo podrías resolver de la siguiente manera:
mmv "*_[a-z]*.php" "#1_#u2#3.php"
o:
mmv "*_[a-z]*" "#1_#u2#3"