Broncode

From Wiki

Jump to: navigation, search

Contents

[edit] Intro

De source code van de website van de Liga Antwerpen is geshared via een google code project [1].

Google code levert namelijk gratis support voor een heleboel typische developer tools:

  • source code control (Subversion)
  • issue management
  • wiki
  • etc.


[edit] Software

  • Subversion nodig [2]. Dit laat je o.a. toe in je command box het "svn checkout" commando te gebruiken.
  • Een editor voor PHP / HTML die je ligt, ik gebruik NuSphere PhpEd [3] (als je NuSphere PhpEd gebruikt, open de liga.ppj file in de root)
  • Een FTP upload tool, bv. FlashFxp of LeechFTP
  • Een MySQL tool voor data synchronisatie en query testing, ik raad SQLyog [4] aan, het is wel een trial versie maar contacteer me als we daar een licentie voor willen vragen
  • Wamp [5], bevat Apache / MySQL / PHP
  • [optioneel] TortoiseSVN [6], een handige add-on die je toelaat vanuit Windows Explorer met Subversion te werken.

[edit] Source code

Het eerste dat je moet doen is de source code uitchecken d.w.z. de code downloaden.

Creëer een werkdirectory en voer volgend commando uit :

 svn checkout https://chess-league-antwerp.googlecode.com/svn/trunk/ chess-league-antwerp --username schaakliga.antwerpen

Je zal merken dat je een warning krijgt en je je moet authenticeren, de gebruikersnaam staat er al (schaakliga.antwerpen@gmail.com) het paswoord is Rh8BA3ud3JU4 (let wel, dit is gegenereerd door google, zie http://code.google.com/hosting/settings, check dus daar als het ondertussen verouderd is)

Volgende afbeelding geeft je een idee hoe die checkout eruit ziet :

Afbeelding:Checkout.gif

Het eindresultaat is dat je in Windows Explorer ongeveer volgende structuur zou moeten terugvinden :

Afbeelding:Explorer.gif

[edit] Configuratie developer tools

We werken met Apache + PHP + MySQL, en Wamp kan ons hier veel tijd besparen.

Hieronder staat uitgelegd hoe dit bij mij is geconfigureerd.

[edit] Apache

We moeten Apache niet configureren, maar voor het gemak gebruik ik het liga project als default directory waar Apache in zoekt (op poort 80). Doorheen de configuratie ga ik wel uit van mijn workspace directory e:/dev/workspaces/chess-league-antwerp, dus je moet dit vervangen door jouw dir.

[edit] httpd.conf

Afbeelding:httpd_conf.gif

DocumentRoot "e:/dev/workspaces/chess-league-antwerp/"

<Directory "e:/dev/workspaces/chess-league-antwerp"> ...

[edit] Alias

Afbeelding:alias.gif

 Alias /liga/ "e:/dev/workspaces/chess-league-antwerp/" 
 <Directory "e:/dev/workspaces/chess-league-antwerp/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
       Order allow,deny
   Allow from all
 </Directory>

[edit] PHP

Default instellingen.

Er bestaat wel een .htaccess bestand in de root van het project. Deze file dient om de PHP server instellingen voor onze ligasite te beïnvloeden.

 php_flag display_errors on
 php_flag short_open_tag on
 Options -Indexes
 php_value include_path ./inc;/home/vhosting/s/vhost0014788/domains/schaakliga-antwerpen.info/htdocs/www/inc;D:/dev/workspaces/chess-league-antwerp/inc

Belangrijkste hier is de include_path variabele. Die zorgt ervoor dat PHP een bepaalde directory gebruikt als importdirectory. Dit laat toe om relatief te verwijzen naar files die herbruikbaar zijn, denk bv. aan headers of footers. Zoals je hieronder ziet staat er een absolute verwijzing in de include_path variabele. Er staan er 2 in:

  • ./inc : een relatieve verwijzing naar de include directory, d.w.z. relatief ten opzichte van de huidige directory, dus "tornooien/inc" krijgt voorrang op de absolute verwijzingen hieronder
  • /home/vhosting/s/vhost0014788/domains/schaakliga-antwerpen.info/htdocs/www/inc : een absolute verwijzing naar de online include directory
  • D:/dev/workspaces/chess-league-antwerp/inc : een absolute verwijzing naar mijn lokale include directory

Je dient die van jou eraan toe te voegen. Let wel op : het lijstscheidingsteken hier is een puntkomma, maar de landinstellingen verschillen op de server (dubbelpunt), commit deze file dus niet, zet ze in je svn:ignore.

[edit] MySQL

Wat je absoluut nodig hebt is de online database lokaal op je pc.

Een synchronisatie kan je doen via PhpMyAdmin of (beter) via een MySQL synchronisatie tool, bv. SQLyog.

500px

In elk geval zal je SSH tunneling moeten gebruiken om te kunnen connecteren naar de online database. De instellingen vraag je aan mij.

SQLyog is trouwens ook geweldig voor sql queries uit te testen.

[edit] Wamp

Alles zou nu in sync moeten zijn om te kunnen testen of je lokaal de site kan draaien.

 Opmerking: behalve dat je een bestand constants.inc moet vragen aan mij, zie topic "Enkele afspraken" 

Start Wamp, je zal een icoon in je systemtray zien verschijnen :

Afbeelding:wamp_systemtray.gif

Als alles goed gestart is, d.w.z. de MySQL service, de PHP service en de Apache service dan ziet het icoon volledig wit. Bij een fout in het opstarten zal je het gedeeltelijk of volledig rood zien kleuren (in dat geval heeft het te maken met een verkeerde configuratie).

Om met Wamp te werken klik je links op het icoon. De 2 meest relevant shortcuts zijn die naar localhost en PhpMyAdmin.

[edit] Enkele afspraken

  • er ontbreek bewust één essentiële file bij het uitchecken van de source code, constants.inc, hier staan paswoorden e.d. in, vraag deze aan mij dan stuur ik ze door, als gevolg hiervan moet je constants.inc ook negeren wanneer je met Subversion werkt, dit kan je makkelijk instellen via TortoiseSVN :

Afbeelding:constants-inc.gif

  • voor je begint altijd een "svn update" doen

Afbeelding:update.gif

  • code altijd committen eens werkend, doe je via TortoiseSVN of het "svn commit" commando vanop de prompt, op die manier is al het werk synchroon

Afbeelding:commit.gif

  • FTP connectie
    • host = ftp.pcextreme.nl
    • username = root.schaakliga-antwerpen.info
    • pwd = mail me (of wat dacht je nu)

500px|

  • importeren van de elo-lijst (player.dbf) is afhankelijk van de PHP DBase extensie, die moet je activeren in je php.ini (verwijder punkomma voor lijn "extension=php_dbase.dll")
  • feel free om te doen wat je wil, maar keep in touch
Personal tools
home