briedis Posted June 17, 2012 Report Share Posted June 17, 2012 Vajag kaut kā noteikt, ka kods tiek darbināts izstrādes vidē. Atradu jēdzīgu variantu ar virtualhost'u uzliekot vides mainīgo (SetEnv DEV "1"), ko pēc tam dabūjam ar getenv('dev'). Tiktāl labi,bet problēma ar CLI vidi - tur apache netiek aiztikts, un tāds vides mainīgais nepastāv. REMOTE_ADDR arī nav jēga čekot, ko varētu darīt apaches gadījumā , jo tas ir tukšs zem CLI. Varu čekot __FILE__ ceļa sākumu, bet tad tiek hardkodēta mana sistēmas konfigurācija, un tam zūd jēga, kad nebūšu vairs 1 izstrādātājs. Idejas? Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 17, 2012 Report Share Posted June 17, 2012 Es vienmēr esmu izlīdzējies ar vides uzstādīšanu config failā. Works all the time... Quote Link to comment Share on other sites More sharing options...
marrtins Posted June 17, 2012 Report Share Posted June 17, 2012 Uztaisi wrapperi: env DEV="1" /usr/bin/php /mans/php/fails.php Quote Link to comment Share on other sites More sharing options...
briedis Posted June 17, 2012 Author Report Share Posted June 17, 2012 (edited) Es vienmēr esmu izlīdzējies ar vides uzstādīšanu config failā. Works all the time... Kas tas par config failu? Viņš tiek versionēts? Tad sanāk, ka es vienkārši nevaru ielādēt kādu projekta versiju uz produkcijas servera, jo tas fails vienmēr būs jālabo uz produkcijas stāvokli :( Pašlaik man konfig failā tiek uzsetota konstante, kas norāda vai ir dev vide (balstoties uz IP), un viss ok, kamēr nemēģinu darbināt no CLI to skriptu... Uztaisi wrapperi: env DEV="1" /usr/bin/php /mans/php/fails.php Nesapratu, kur šis wraperis jātaisa? (piezīmēšu, ka produkcijas vide ir nix, bet izstrādāju zem win) Edited June 17, 2012 by briedis Quote Link to comment Share on other sites More sharing options...
marrtins Posted June 17, 2012 Report Share Posted June 17, 2012 (edited) Ā, uz windiem. Nu tad jāpaeksperimentē. test.php <?php print empty($_SERVER['DEV']) ? "PROD" : "DEV"; test.bat set DEV=1 C:\php5\php.exe test.php Edited June 17, 2012 by marrtins Quote Link to comment Share on other sites More sharing options...
marrtins Posted June 17, 2012 Report Share Posted June 17, 2012 Kas tas par config failu? Viņš tiek versionēts? Tad sanāk, ka es vienkārši nevaru ielādēt kādu projekta versiju uz produkcijas servera, jo tas fails vienmēr būs jālabo uz produkcijas stāvokli :( Tāpēc taisam config-dist.php un uz konkrētās vides pārsaucam par config.php, kas, dabiski, ir ārpus versiju kontroles. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 17, 2012 Report Share Posted June 17, 2012 Kaut kāds konfigurācijas fails jau vienmēr ir ārpus versiju kontroles sistēmas (db konekcijas detaļas, utt...). Tur arī var uzstādīt kas pa vidi tiek laista. Pēc noklusējuma uzskatīt var, ka vide ir produkcijas, lai izvairītos no negaidāmām problēmām :) Quote Link to comment Share on other sites More sharing options...
draugz Posted June 18, 2012 Report Share Posted June 18, 2012 Es personīgi lietotu brieža minēto variantu ar __FILE__ Respektīvi ar __FILE__ palīdzību nodefinēt kontanti DEV define('DEV', in_array(dirname(__FILE__), array( '/home/draugz/www', //mana testa kaste '/home/user2/www', //cits useris ))) Quote Link to comment Share on other sites More sharing options...
draugz Posted June 18, 2012 Report Share Posted June 18, 2012 Vēl uz ātro ienāca prātā, ka atsevišķos gadījumos varētu darīt tā define('DEV', is_file('dev')); Respektīvi savā smilškastē tev ir fails dev, kuru tu nekad nepievienosi SVN un nekopēsi uz serveri :) ja faila nav tad tiek pieņemta ka tā ir produkcija Quote Link to comment Share on other sites More sharing options...
briedis Posted June 26, 2012 Author Report Share Posted June 26, 2012 Paliku pie šī varianta - define('DEV', is_file('dev')); Skaidri un kompakti! Paldies par diskusiju! Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted June 27, 2012 Report Share Posted June 27, 2012 Respektīvi savā smilškastē tev ir fails dev, kuru tu nekad nepievienosi SVN un nekopēsi uz serveri :) ja faila nav tad tiek pieņemta ka tā ir produkcija Tas ir diezgan muļķigi, jo vienmēr var nejauši iekopēt to failu. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted June 27, 2012 Report Share Posted June 27, 2012 Nejauši var arī DROP DATABASE uz produkcijas izpildīt. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted June 27, 2012 Report Share Posted June 27, 2012 Nejauši var arī DROP DATABASE uz produkcijas izpildīt. tas gan, bet nu vienkāršāk ir izveidot config failu kur pierakstās DB konekkcijas un tur arī ierakstīt kad tā ir produkcijas vide. piem: vide=0; bet izstrādes vide pārsauc par vide=1 .... pašu failu vers. kontrolē nodefinēt kā readonly un miers, nebūs problēmu kad būs vairāki izstrādātāji, ar daždām izstrādes vidēm ( konfigurācijām) , piem testa db konekcijām utt. ( kautvai doc roota struktūru ) Quote Link to comment Share on other sites More sharing options...
Kavacky Posted June 27, 2012 Report Share Posted June 27, 2012 Ja es sapratu tavu domu, tad kur atšķirība starp speciālu dev configu, ko arī nejauši var pārkopēt? Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted June 27, 2012 Report Share Posted June 27, 2012 (edited) Ja es sapratu tavu domu, tad kur atšķirība starp speciālu dev configu, ko arī nejauši var pārkopēt? [cit] pašu failu vers. kontrolē nodefinēt kā readonly un miers, [/cit] vienkārši neļaut kopēt pa virsu - pašus datus taču vienmēr var palabot caur FTP jo cik gan bieži uz servera manīsies db konekcijas informācija ... piedevām tas ļauj izvairīties lai nejauši nesabojā kādu statisku info ( kautvai tie paši konekcijas dati, e-mail utt.. ) -- vel optimālāk kad vispār to failu uz katras vides izveido ar rokām, ( nu 5-6 rindiņas taču nav fatāli )un uzseto lai nejauši nevarētu pārkopēt ... Edited June 27, 2012 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.