[Eclipse] Vragen over web-werkwijze: projecten, svn, ftp,...

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

  • raps
  • Registratie: April 2003
  • Laatst online: 31-12-2025
Beste Tweakers,

Ik heb wat vragen over mijn werkwijze en de daarbij behorende tools. Al enige jaren ontwikkel ik websites. Het betreft voornamelijk eenvoudige websites, maar ik heb wat grotere projecten gedaan en verricht dagelijks onderhoud aan twee websites. Vooralsnog is vrijwel alles gebouwd met PHP en MySQL en daarnaast HTML, CSS & JS. Ik doe dit met programma’s als EditPad/PSPad en MySQL Front.

Graag zou ik jullie advies willen over het volgende:

Huidige/oude situatie
Ik heb lokaal een webserver met daarop Apache en MySQL. Deze heeft alle projecten in een directory staan welke op apache draait (http://webserver/project/) en geshared is. Vanaf mijn werkstation benader ik de share met editors als PSPad en de MySQL server met MySQL Front. Wijzigingen upload ik met FileZilla. Als er veel is aangepast, zip ik het hele gebeuren en plaats dit naar een andere directory op de server.

Nu ben ik op het punt gekomen dat ik het wat beter wil gaan aanpakken. De projecten worden groter en ik merk gewoon dat alles beter kan. Zelf heb ik het volgende in gedachten:

Beoogde/nieuwe situatie
Op de server wil ik SVN gaan draaien. Als ontwikkel-omgeving Eclipse samen met PHP IDE (van Zend) en Aptana voor het editten, Subclipse voor SVN en QuantumDB of SQLExplorer voor connectie met de MySQL server.
Op het moment ben ik hier wat mee aan het testen. Dit alles gaat niet zo soepel: installatie Eclipse was lastig, werken met Eclipse heb ik nog niet helemaal door, en ook met SVN ben ik nog lerende.

Issues
Op voorhand leek mij deze methode ideaal, maar daar ben ik nu niet meer van overtuigd. Daarom wil ik jullie graag de volgende issues vragen voorleggen:

1) Project management
In SVN wil ik in een repository alle projecten onderbrengen. Het zijn er over de jaren nogal wat. De hoofddirectories wil ik daarom indelen met ‘/a /b /c /d …’ en daaronder de klanten ‘/b/bedrijf_x’ met daaronder (eventueel) de verschillende projecten ‘/b/bedrijf_x/www_v1’.
In de oude situatie heb ik eenzelfde directory structuur op de server’s HD. Deze is geshared en hier zit ik op te werken.
In de nieuwe situatie moet ik in Eclipse telkens een project aanmaken en bestanden importeren. Ik heb dan op mijn eigen pc een Eclipse ‘workbench’ met wat projecten. Om deze te testen moet ik zelf ook een webserver lokaal gaan draaien. Ik zie hierin geen problemen, maar wel een stuk meer werk. Op een gemiddelde dag pak ik zeg 3-8 projecten erbij om wat kleine dingen in aan te passen. Het lijkt me ook krom om alle projecten in Eclipse en op de SVN server te hebben staan. Het projecten-beheer van Eclipse lijkt me daarom veel werk. Overigens heeft vrijwel iedere IDE volgens mij een soortgelijk project management. Hoe kan ik hier het beste mee omgaan?

2) Libraries
Bij het bouwen van mijn websites gebruik ik steeds vaker vaste PHP bestanden (libraries). Wat ‘echte’ libraries en wat eigen brouwsel. Volgens mij kan ik deze op een enkele plaats beheren en per project wat libraries ‘includen’ in Eclipse? Maar hoe moet dit met het eigen brouwsel? Kan ik de eigen scripts standaard ergens anders vandaan halen, en indien aangepast apart bij het project zetten of iets dergelijks?

3) FTP
Gezien de vele projecten ben ik ook nogal eens bezig met het uploaden van bestanden op losse FTP shared webhosting accounts. Dit zou ik graag eenvoudiger doen. Eerder heb ik getest met SVN, maar hierdoor werd het oploaden lastiger: bestanden editten, svn committen, svn directory ergens anders naar exporteren, dat vervolgens uploaden. Het committen van svn is ideaal: tegen een directory zeggen dat de wijzigingen klaar zijn en hij zoekt vervolgens uit wat gewijzigd is en stuurt dit naar de server (ik weet dat ik jullie dit niet hoef uit te leggen ;)). Dezelfde bestanden (omvat ook afbeeldingen e.d.) wil ik eigenlijk uploaden naar een project-specifieke FTP host, mocht ik hiervoor kiezen (en dus niet als ik half werk tijdelijk opsla/commit). Kan ik dit op een of andere manier inpassen in mijn Eclipse gebaseerde werkwijze?

4) Webserver / debugger
Mijn collega (niet developer) werkt op hetzelfde netwerk en maakt nogal eens gebruik van de CMS’en van de verschillende projecten. Zoals gezegd staan alle projecten gepubliceerd via de webserver en kan hij daarbij. Graag zou ik deze server ook gebruiken met debuggen. Daarom zie ik het ook niet zitten om op mijn eigen pc de test-omgeving te creeren (als ik er niet ben, server uit de lucht + remote toegang). Verder kan ik een PHP debugger voor Eclipse volgens mij alleen gebruiken als deze op mijn eigen pc heb staan. Deze wil ik dus liever aanroepen van de server. Of begrijp ik dit verkeerd?


Over het algemeen lijkt het erop dat Eclipse gemaakt is voor ontwikkelaars die een klein aantal projecten onder handen hebben. Echter spreekt Eclipse en haar hele IDE principe (met plugins als Aptana en Subclipse) mij nogal aan. Ik heb ook getest met Zend Studio, Nusphere, en een hoop andere PHP editors en overige tools, maar deze lijken mij niet fijn werken in de algehele aanpak. Ik ben zeker bereid veel tijd te investeren in een goede werkwijze. Ik dacht deze gevonden te hebben, maar dit blijkt vooralsnog lastig. Kunnen jullie mij helpen met bovenstaande issues?

Alvast super bedankt!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
1) Die gedeelde HD van de server, die kun je gewoon als je working directory voor Eclipse gebruiken. Daar hoef je geen extra kopie voor te maken of lokaal een webserver te draaien. Wel zit je collega dan - net als nu kennelijk - in jouw dev-structuur te werken en zal jij dan degene zijn die zijn wijzigingen in SVN moet committen.

2) Snap niet zo goed wat "het eigen brouwsel" anders maakt.. Ik zou die libraries wel echt in je projecten opnemen, dat maakt het uitrollen gemakkelijker.

Als je het versie-beheer ervan heel gescheiden moet houden, kijk dan 'ns naar vendor branches
Als een library voor alle (of veel) projecten tegelijk wordt bijgewerkt, dan is een externals definitie waarschijnlijk handiger.

3) Phing wellicht? Da's een tooltje om "mocht je ervoor kiezen" tevoren vastgestelde uitrol-handelingen af te lopen; export van het betreffende project uit SVN dus en sync met de betreffende server.

4) Je kunt debuggen op de dev-server. In Eclipse termen is dat "remote debugging". Je kunt projecten in je workspace sluiten, zodat je weinig hinder van ze ondervindt, of nog een stap verder met een aantal losse workspaces werken met elk een aantal projecten erin.


Ik ben wel nieuwsgierig naar dat Aptana. Met name vraag ik me af wat het toevoegt aan de WTP tools en hoe daarmee samenwerkt. Ze lijken nl. nogal op hetzelfde vaarwater te richten. Zou je je ervaringen daarmee wellicht hier t.z.t. willen posten?

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 12-02 12:22
Het klinkt inderdaad alsof je een aantal zaken met een standaard scriptje wil kunnen doen.

Gelukkig is SVN goed te scripten. Dus je zult zo iets in elkaar moeten kunnen bashen. Met een dergelijk scriptje kun je dan na een commit op de SVN server de benodigde handelingen laten afgaan indien gewenst.

  • raps
  • Registratie: April 2003
  • Laatst online: 31-12-2025
Bedankt voor deze eerste reacties. Ik ga er verder mee testen. Verwacht geen snelle reactie, maar ik kom hier op terug.

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Het lijkt me ook krom om alle projecten in Eclipse en op de SVN server te hebben staan.
Toch is dat wel de manier waarop het werkt. De code staat in een SVN repository, zodra je daar mee aan de slag wilt, trek je de laatste versie uit de repos, dat wordt je lokale kopie. Zodra je klaar bent en je wijzigingen hebt gecommit, kun je de lokale kopie zelfs weer van je schijf verwijderen als je dat wilt.

Als je vindt dat je teveel projecten hebt in je Eclipse workspace, dan kun je een nieuwe workspace aanmaken en tussen workspaces gaan switchen. Misschien kun je workspaces inrichten voor je verschillende 'types' projecten. De voorkeuren van een workspace worden apart opgeslagen, daar zou je ook nog gebruik van kunnen maken.

Het scheelt trouwens een hoop (snelheid) in Eclipse als je de projecten waar je op dat moment niet aan werkt sluit.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.