Jump to content
php.lv forumi

Konfigurācijas glabāšana


F3llony

Recommended Posts

  • Replies 30
  • Created
  • Last Reply

Top Posters In This Topic

Janem vērā ka konfigurācijas lietotāji pārsvarā ir admini, normālā gadījumā. Klašu konstantes, metodes varētu nebut tas lasamakais gabals adminam, un viņš pārsvarā lieto melno konsoli nevis ide. Assoc masīvi manuprāt labākais veids ka glabāt konfigu. Ar pieraksta veidu var variet iegūstot lasamibu, inheritance ar array_merge utt

Link to comment
Share on other sites

Ko tev tādu konfigos vajag glabāt, kas ir multidimensionāls?

 

>Associatīvie masīvi sux, ļaunuma sakne.

Nepiekrītu. Varbūt šajā konkrētajā piemērā nav labi, bet vispār ļoti ērta štelle.

Sekcija=>konfigs=>vērtība[?masīvs/saraksts]

 

Janem vērā ka konfigurācijas lietotāji pārsvarā ir admini, normālā gadījumā. Klašu konstantes, metodes varētu nebut tas lasamakais gabals adminam, un viņš pārsvarā lieto melno konsoli nevis ide. Assoc masīvi manuprāt labākais veids ka glabāt konfigu. Ar pieraksta veidu var variet iegūstot lasamibu, inheritance ar array_merge utt

Offtopic protams, bet kādā normālā gadījumā gar PHP aplikāciju konfigiem gramstās admini?! Lūdzu, pastāsti man, kurā paradīzes ielejā tā notiek. 

 

Konfigs ir tāds pats klasisks write few, use many gadījums kā ārējās bibliotēkas. Konfigs tiek referencēts bieži tāpēc tam būtu jābūt maksimāli ērtam, tieši tā pat, kā jebkurai tāda paša tipa referencei. 

 

Asociatīvi masīvi šajā gadījumā ir problemātiski jo tiem nav definējama shēma un nav tik ļoti vēlamais autocomplete. 

Link to comment
Share on other sites

Kā tu iztēlojies multi-dimensionālu konfigu ar auto-complete? Vai to vispār kaut kā ir iespējams īstenot? Ja nē, tad tādu kritēriju kā auto-complete vispār jāatmet, un tad nu grozies kā gribi - PHP masīvi ir vislabākais/ērtākais/vienkāršākais variants.

 

JSON/YAML/INI visi ir tikai abstrakcijas, kad tos nolasa, rezultātā iegūst vai nu to pašu PHP masīvu, vai ko smagāku. Manuprāt, nav jēgas lieki sarežģīt dzīvi, ar PHP masīvu viss ir elementāri.

 

>tiem nav definējama shēma

Kāda shēma?

Link to comment
Share on other sites

 

 

kādā normālā gadījumā gar PHP aplikāciju konfigiem gramstās admini

Tādā normālā gadījumā kur sistēmai var būt n-vides, un developerim ir pieeja tikai savai dev videi. Uzstādīšanu un konfigurēšanu citās vidēs veic admins, izmantojot instrukciju un konfigurācijas failus.

Ja to nevar izdarīt tad ir vai nu sūdīga konfigurācija, sūdīga dokumentācija vai sūdīgs admins.  

Link to comment
Share on other sites

Tādā normālā gadījumā kur sistēmai var būt n-vides, un developerim ir pieeja tikai savai dev videi. Uzstādīšanu un konfigurēšanu citās vidēs veic admins, izmantojot instrukciju un konfigurācijas failus.

Ja to nevar izdarīt tad ir vai nu sūdīga konfigurācija, sūdīga dokumentācija vai sūdīgs admins.  

:D es saprotu, ka tu esi trāpijis uz kaut kādu energo vai telekoma iepirkumu, bet šitā ķēmošanās NAV normāls gadījums. Tas nekas, ka tā dara. Un kodu pa epastu sūtīt arī nav normāls gadījums. 

Link to comment
Share on other sites

Konfigs ir tāds pats klasisks write few, use many gadījums kā ārējās bibliotēkas. Konfigs tiek referencēts bieži tāpēc tam būtu jābūt maksimāli ērtam, tieši tā pat, kā jebkurai tāda paša tipa referencei.

Man kaut kā vienmēr ir licies, ka, jo mazāk vietās parādās atsauce uz konfigu, kā arī, jo konfiga vispār mazāk, jo labāk. Un tad nekādas n dimensiju bedres nevajag. Ar to es nedomāju hārdkodēt vai ko tādu, bet neparedzēt lieki konfigurēt to, bez kā var iztikt.
Link to comment
Share on other sites

Man kaut kā vienmēr ir licies, ka, jo mazāk vietās parādās atsauce uz konfigu, kā arī, jo konfiga vispār mazāk, jo labāk. Un tad nekādas n dimensiju bedres nevajag. Ar to es nedomāju hārdkodēt vai ko tādu, bet neparedzēt lieki konfigurēt to, bez kā var iztikt.

 

Pilnīgi piekrītu, un daudzos gadījumos to tiešām tā var arī realizēt, bet diemžēl, ne tuvu ne visos. 

Link to comment
Share on other sites

Droši vien daudz aiztaupītu, ja sākotnēji būtu skaidrāks vai "konfigam" jābūt "human readable" (tad, piemēram, Blitz komentārs par to, ka kaut kāds administrators, kas ņebumbum no php, INI tipa konfigā justos par kapeiku labāk, ir OK).

 

Ja to lasa/lieto php koderis vai kods, tad sāvādāk ..

 

 

 

 

INI

[config]
a=1
b=2

Pros:

  • ātrāks par JSON un YAML

Cons:

  • tikai 2 līmeņi

 

Skaldot matus http://php.net/parse_ini_fileman sanāk 3 t.i. pašā ini sanāk pseido masīvi

[third_section]

phpversion[aa] = "5.0"
phpversion[bb] = "5.1"
phpversion[xx] = "5.2"
phpversion[] = "5.3"

.. galā protams tas anyway ir arrays.

 

 

Offtopic - kā administratoram (no "cilvēkiem lasāmajām") vislabāk patīk nginx tipa konfigurācija:
 

section {
    var1 value1;
 
​    subsection {
        statement;
        var2 value2;
    }
 }

section2 {
...
}

Var, protams, arī šeit piesieties par to ka priekšā un pakaļā vajag {}, bet nu ..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...