Jump to content
php.lv forumi

Izstrādes/produkcijas vides noteikšana


briedis

Recommended Posts

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?

Link to comment
Share on other sites

  • Replies 34
  • Created
  • Last Reply

Top Posters In This Topic

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 by briedis
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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
)))

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 2 weeks later...

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 )

Link to comment
Share on other sites

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 by Grey_Wolf
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...