È sicuro usare i nomi dei file CamelCased?

5

Sto sviluppando un semplice CMS che mi piacerebbe renderlo open source.

Per la struttura dei file, pensi che sia sicuro usare nomi come:

AppData
FileUploads

invece di

app-data
file-uploads

Perché ho sentito che alcuni server hanno problemi con il camelCase.

    
posta melania 21.05.2012 - 01:00
fonte

3 risposte

8

Ogni volta che si usano lettere maiuscole nei nomi dei file sui sistemi * nix, si chiede l'inserimento di errori umani. Tutte le lettere minuscole sono più facili da digitare e non commettono errori. Inoltre causa errori impercettibili e comportamenti di tipo non definito su Case Preserving ma Case Insensitive con i file system predefiniti di NTFS e HFS +.

Sarei più preoccupato dell'uso del carattere - nei nomi dei file rispetto al caso misto. - è uno switch da riga di comando e ho riscontrato alcuni problemi estremamente sottili con shell e programmi da riga di comando in cui è necessario eseguire l'escape, molto tempo fa e relativo a PowerShell che analizza la riga di comando args ad altri programmi da riga di comando , ma ancora non lo farei solo per evitare di rintracciare cose sciocche come quella.

Tradizionalmente _ è il separatore di parole preferito nei nomi di file e directory.

In realtà esiste una specifica per Confini di parole Unicode .

    
risposta data 21.05.2012 - 02:06
fonte
4

Risposta breve, sì con un if.

Più specificamente, alcuni filesystem sono case-sensitive (foo.php e FOO.PHP sarebbero file diversi), mentre altri no (foo.php e FOO.PHP sarebbero lo stesso file).

Se stai sviluppando su un sistema con un filesystem con distinzione tra maiuscole e minuscole (gran parte dei filesystem Linux, HFS + in modalità maiuscole e minuscole, ecc.) non dovresti avere problemi.

Se, tuttavia, si sta lavorando su un sistema con un filesystem insensibile alle maiuscole e minuscole (NTFS, HFS + nella sua configurazione predefinita, ecc.), è necessario tenere un occhio attento ai nomi dei file. È possibile incorrere in problemi in cui un file viene caricato su una macchina ma causa un errore di file non trovato su un'altra. A seconda della criticità del file, questo può causare problemi che vanno dai fastidi agli errori di show-stop, ma causano problemi.

Se stai sviluppando su Linux, probabilmente non devi preoccuparti di questo. In caso contrario, probabilmente lo farai, ma non c'è nulla che ti impedisca di usare nomi di file in cammello.

EDIT : se utilizzi un caricatore automatico, in genere è consigliabile che l'intestazione del nome del file della classe corrisponda all'intelaiatura del nome della classe PHP. Il caricatore automatico ottiene automaticamente il nome della classe come argomento e deve capire quale file aprire per trovarlo. Ovviamente puoi eseguire qualsiasi cosa che ti piace come un autoloader per risolvere il nome della classe, ma la maggior parte dei caricatori automatici esegue il mapping del nome della classe su un nome file. A meno che non si cambi esplicitamente il caso del nome della classe nel caricatore automatico, ciò significa che una richiesta per un nuovo FooClass probabilmente tenterà di aprire un file FooClass.php.

Il miglior consiglio che posso offrire è usare qualsiasi convenzione di custodia che desideri, ma assicurati di testarlo su file system sensibili al maiuscolo e maiuscolo / minuscolo se possibile.

    
risposta data 21.05.2012 - 09:31
fonte
-1

Ci sono alcune diverse convenzioni di denominazione che bussano, ma personalmente non vedo alcun problema con l'utilizzo di lettere maiuscole nei nomi dei file.

Se stai usando i caricatori automatici (che dovresti), allora è molto probabile che hai bisogno di usare lettere maiuscole. Ancora una volta, dipende da come si denominano le classi, ma la maggior parte delle persone inizia tutti i nomi di classe con una maiuscola. Ovviamente puoi usare strtolower () nella tua funzione di caricamento automatico, ma è solo disordinato.

Quindi, in sintesi, se stai usando OOP, dovresti usare le lettere maiuscole nei nomi dei file. Ma probabilmente starò lontano dalle lettere maiuscole nei nomi dei file che non sono di classe, solo convenzione.

    
risposta data 29.05.2012 - 15:50
fonte

Leggi altre domande sui tag