Hvordan samler i jeres ini_set() i PHP ?

Tags:    php

Jeg sidder og rette lidt på min opsætning i min PHP ved de indstillinger osv som sættes før den engentlige kode kommer.

Altså sådan noget med ini_set() og error_reporting() osv.

Jeg fik afvide det ville være en god ide at sætte min globale variabler i et array istedet for jeg har en masse variabler i det globale område så det er jeg ved at rette.

Nu har jeg så også en masse ini_set() hist og her, der er vist noget med de skal komme i en bestemt rækkefølge og man ikke bare kan indstille dem allesammen samme sted.

Men jeg kunne godt tænke mig og se hvordan i har gjort i jeres kode.

Jeg tænker at samle alle indstillinger først også kalde alle ini_set() til sidst på en gang men jeg forventer det vil give problemer.

Fold kodeboks ind/udPHP kode 


Så hvordan går i ?



Indlæg senest redigeret d. 30.06.2012 17:48 af Bruger #13010
9 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Jeg forstår ikke hvorfor du vil loope over dem? Du sparer ikke noget arbejde ved at plotte det ind i dit array frem for bare at skrive ini_set(foo, bar). Det kører ikke hurtigere. Hvad er målet?

Du skriver at man ikke kan skrive dem alle lige efterhinanden? Det forstår jeg heller ikke... Rækkefølgen er for så vidt ligegyldig, og de bør komme som det første i din kode...

Det virker ærligtalt lidt som et faresignal at du bruger dem så meget. Hvad kan du dog finde på at ændre udover error_reporting? Det er meget sjældent at jeg har behov for at ændre andet - jeg kan nærmest ikke huske sidste gang det er sket...



Jeg dropper det med at loope igennem dem.
Tænkte bare det var smart at samle dem også kalde dem ét sted.


Her er de fleste af de ini_set() jeg bruger :

Fold kodeboks ind/udKode 


erroer_reporting() skal vel helst sættes så tidligt så muligt ik ?

Men jeg vil gerne se hvordan i sætte jeres indstillinger og bruger de indstillingere videre ind i koden.

Som det er nu sætter jeg indstillinger i nogen filer og bruger $_GLOBALS til at bruge dem som der var en der skrev jeg skulle ikke bruge $GLOBALS men i stedet sende dem ind med en funktion eller noget.

...

Som det er nu kalder jeg først en grundlæggende opsætnings fil med nogen indstiller der bruges på alle mine sider.

Så sætter jeg nogen steder som kan være forskellige alt efter hvad det er for sider.

Så kalder jeg nogen flere indstillinger som bruger de stier.

Også kommer selve koden som laver siden.

Jeg ville da ikke havde noget imod og lave det på en smartere måde.



Indlæg senest redigeret d. 01.07.2012 20:36 af Bruger #13010
Jeg forstår stadig ikke helt hvad du skal med alle de ini-ændringer. Jeg bruger dem næsten aldrig. Det virker ærligtalt unødvendigt. Nu har jeg ikke nærlæst det - men for eksempel forsøger du at ændre memory_limit til 100 mb hvilket jeg for det første ikke tror har nogen effekt med mindre det bliver gjort globalt (i php.ini) eller per-folder (php-set i fx htaccess)- hvad du kan ændre på afviklingstidspunktet kan du se i manualen. For det andet så vil jeg vove den Påstand at du gør noget forkert hvis du har brug for et memlimit på 100... Med mindre du skal uploade og resize mega billeder...

Prøv engang at fjerne alle dine justeringer og se om det overhovedet gør en forskel. Jeg tror ikke du vil kunne se forskel.

I forhold til opsætning af indstillinger og miljø til mine PHP projekter, så vil jeg da lige give et eksempel på hvordan jeg gerne gør det...

1) jeg definerer nogen konstanter med absolutte stier til de mapper jeg bruger mest - mindst en root, flere kommer an på hvor omfattende projektet er. Noget ala:
define('ROOT', get_cwd().'/');
define('LIB', ROOT . 'library/');

2) så laver jeg en autoloader funktion. Hvis det er noget der skal køre på php < 5.3 (altså uden namespaces) så er det meget simpelt og noget ala:
function __autoload($className) {
require_once LIB . strtolower($className) . '.php';
}

3) så loader jeg en routerclass eller hvad der nu lige passer.



Alle set_ini'erne er nogen jeg har samlet af forskellige årsager men det skulle ikke havde om jeg skal bruge dem allesammen med mere om ligesom hvordan man sætte sine indstillinger og variabler osv inden den egentlige kode.

memory_limit var noget jeg lige testede fordi jeg netop havde problemer med oprettelse af thumbnails ud fra meget store billeder.

Ja ok det selvfølgelig meget smart og sætte nogen stier som konstanter hvis de aldrig skal/må ændres.

Jeg ved ikke hvad en routerclass er.

Men hvor mange filer har du gang i når du skal vise bare en simpel side ?

Fordi hos mig der er 1,2,3,4 filer som tages i brug minimum.
1 . grundlæggende opsætning.
2 . stier
3 . mere opsætning
4 . selve siden... som så bruger indstillinger fra de 3 andre filer.

Det bare lidt forvirrende med så mange filer, altså det virker men ville være rart hvis det var samlet lidt mere i med kun 2 filer.

Jeg kan godt samle en zip fil med filerne så i kan se hvordan jeg gør det.
Og det jo ikke fordi det ikke virker, tænker bare det kunne være fin og give min kode endnu bedre.



For det første, så tager PHP forbehold for runtime ændringer af memory_limit. Altså hvis mem.limit sættes til 100MB i et PHP-script så bruger PHP denne værdi i stedet for den værdi fra php.ini.

Sådan er det gældende med alle de indstillinger der må ændres af PHP.

Nå det er nævnt, så skal det også nævnes at det virker som overkill at lave de indstillinger via. PHP, med mindre du absolut ikke har adgang til at sætte dem direkte i php.ini eller via en .htaccess-fil.



Alle set_ini'erne er nogen jeg har samlet af forskellige årsager men det skulle ikke havde om jeg skal bruge dem allesammen med mere om ligesom hvordan man sætte sine indstillinger og variabler osv inden den egentlige kode.

memory_limit var noget jeg lige testede fordi jeg netop havde problemer med oprettelse af thumbnails ud fra meget store billeder.

Ja ok det selvfølgelig meget smart og sætte nogen stier som konstanter hvis de aldrig skal/må ændres.

Jeg ved ikke hvad en routerclass er.

Men hvor mange filer har du gang i når du skal vise bare en simpel side ?

Fordi hos mig der er 1,2,3,4 filer som tages i brug minimum.
1 . grundlæggende opsætning.
2 . stier
3 . mere opsætning
4 . selve siden... som så bruger indstillinger fra de 3 andre filer.

Det bare lidt forvirrende med så mange filer, altså det virker men ville være rart hvis det var samlet lidt mere i med kun 2 filer.

Jeg kan godt samle en zip fil med filerne så i kan se hvordan jeg gør det.
Og det jo ikke fordi det ikke virker, tænker bare det kunne være fin og give min kode endnu bedre.

jeg tror det er fordi Gustav bygger sine projekter helt anderledes op end dig. Det lyder til, at han bruger et endpoint i samarbejde med noget htaccess, og så bruger han en routerclass til, at mappe sit projekt, i stedet for, at have det i mapper. Det minder nok lidt om den måde man opbygger frameworks (mvc frameworks).

Man kunne evt. være lidt som når man kigger på nogle af de små micro-frameworks der findes:
http://www.slimframework.com/
http://silex.sensiolabs.org/




Indlæg senest redigeret d. 03.07.2012 13:29 af Bruger #17081
Ved nogen få af mine ini_set() der skal de have forskellig værdi alt efter om jeg er på localhost eller ej.

Som her for eksempel :

Fold kodeboks ind/udPHP kode 


Er det egentligt en dårlig måde og gøre sådan når man skal give forskellige indstillinger alt efter om man er på sin egen computer eller om den er på webhotellet ?



nej, det der er meget fint .. men det er kun ganske få ting man i realiteten vil gøre det ved.



@dan, din mistanke er korrekt :-) Jeg foretrækker at bruge en bootstrap fil der sørger for at route requests hen til de rigtige filer. Det gør det hele mere overskueligt da man slipper for en masse bøvl og minimerer antallet af gentagelser.

@scootergrisen, undskyld hvis du føler at jeg trækker tråden væk fra emnet, men jeg har bare aldrig haft brug for at foretage så massive ændringer med ini_set. Men det kan vel nok være nødvendigt hvis man ikke kan ændre det andetsteds. Jeg har altid haft min egen server, og derfor altid en fornuftig php.ini som udgangspunkt.

Hvis du vil lære noget om alternative måder at strukturere koden på, så kan du som dan skriver længere oppe med fordel studere forskellige MVC-frameworks eller microframeworks. http://www.slimframework.com/ kan stærkt anbefales herfra.

Angående konstanter med stier, så er de smarte uanset hvad - faktisk især hvis du ofte ændrer stier. Du kan jo ændre alle stier i alle filer ét sted. Og du behøver ikke bekymre dig om hvor din kode eksekveres fra og hvilke relative stier du skal bruge, for det er udelukkende absolutte stier. Der er ikke nogen grund til at slås mere end højest nødvendigt med filsystemet ;-)



t