Kirjautuminen

Haku

Tehtävät

Keskustelu: Projektit: WebComponent

Sivun loppuun

Createman [22.11.2008 08:00:00]

#

Huomio! Tämä projekti on siirretty automaattisesti vanhasta projektijärjestelmästä. Aloitusviesti on projektin kuvaus sellaisena, kuin se oli 19.12.2008, ja seuraavat viestit siirtoon saakka ovat kommentteja.

Versio/vaihe: Alpha V0.01
Vaatii: PHP 5.1 (PDO enabled)

WebComponent on luokkakirjasto, joka on tarkoitettu PHP-pohjaisten tietokantasovellusten toteuttamiseen.

19.12.2008
- Ensimmäinen versio on nyt ladattavissa lähdekoodeineen täältä: V0.01
- Mukana koodiesimerkkejä, sekä yritys- ja henkilörekisteri
- CSS:n generointi toimii nyt kaikille pääkomponenteille
- Tietokannan käyttäjä joutuu tekemään vielä itse

7.12.2008
- Lisätty WebPage-komponentti, johon voidaan lisätä rajaton määrä muita WebComponentteja
- CSS:n generoinnin toteutus on nyt hyvässä vaiheessa
- Koodi rupeaa menemään XHTML-validaattorista läpi
- Uutta versiota voi testata täällä


WebComponent
Kirjaston avulla sovelluskehittäjä voi hetkessä toteuttaa tietokantasovelluksen, koskematta itse ohjelmakoodiin tai tietokantaan. Nämä kirjasto piilottaa rajapintansa taakse.
Sovelluskehittäjän harteille jää (kirjaston käytön lisäksi) vain sovelluksen ulkoasun toteuttaminen valmiiksi generoituun CSS-aihioon. Myös tietokannan kirjasto osaa pian luoda itse.

Kirjaston käyttö todella nopeuttaa web-pohjaisten tietokantasovellusten tekoa. Sitä käyttämällä säästyy esimerkiksi aina kirjoittamasta samaa koodia uudelleen jokaista eri lomaketta varten (HTML-lomake, lomakkeen käsittely, kenttien arvojen tarkistus, arvon muotoilu SQL-formaattiin, SQL-lauseen kirjoittaminen, SQL-kyselyn tekeminen, SQL-formaatista ihmisen ymmärtämään muotoon muuntaminen, kannasta haetun arvon sijoitus HTML-kenttään, virheilmoitusten näyttäminen...).

Esimerkkitapaus:
- Tehdäänpä käyttövalmis henkilötietojenmuokkaustoiminto henkilörekisteriä varten:
Kuva

<?php
// Sisällytetään kaikki WebComponentit
require_once("WebComponents.php");

// Luodaan muokkauslomake ja liitetään se Henkilo nimiseen tietokannan tauluun.
$lomake = new UpdateForm("Henkilo");

// Asetetaan henkilön yksilöiväksi avaimeksi henkiloID.
// Arvo saadaan parametrina urlissa. Yleensä sama kuin perusavain.
$henkiloID = (int)$_GET['henkiloID'];
$lomake->AddKey("henkiloID", $henkiloID);

// Lisätään tekstikentät etunimelle ja sukunimelle,
// sekä päivämääräkenttä syntymäpäivälle.
$lomake->AddField( new TextField("enimi", "Etunimi") );
$lomake->AddField( new TextField("snimi", "Sukunimi") );
$lomake->AddField( new DateField("spvm", "Syntymäpäivä") );

// Lisätään pudotusvalikko, joka saa arvonsa tietokannan taulusta
// Paikkakunta, ja näyttää tietokannan sarakkeen, paikkakunta,
// arvon.
$lomake->AddField( new ListField("paikkakuntaID", "Kotikunta",
	array("paikkakunta"), "Paikkakunta") );

// Tulostetaan XHTML-koodi (hoitaa myös lomakkeen käsittelyn, nykyisten arvojen hakemisen tietokannasta HTML-kenttiin, uusien arvojen päivittämisen tietokantaan jne.)
echo $lomake;
?>

- Nyt meillä on valmis henkilötietojenmuokkaustoiminto, joka osaa päivittää tietyn (parametrina saadun) henkilön tietoja tietokannasta. Linkki tähän toimintoon (tälle sivulle) olisi voinut olla esimerkiksi toisella PHP-sivulla sijaitsevalla henkilöidenselauslomakkeella.

PowerPoint-esitys WebComponentista
Alphaversiolla tehty muotoilematon yritys- ja henkilörekisteri
Hieman uudempi versio, jossa CSS-aihiot generoituna

gamehouse [22.11.2008 20:18:51]

#

Mielenkiintoisen oloinen järjestelmä.. Pitääpä testata.

Createman [23.11.2008 07:19:31]

#

Laittakaa ihmeessä kommenttia, mitä toimintoja/komponentteja haluaisitte tähän systeemiin saada jatkossa.

kayttaja-2791 [27.11.2008 00:16:55]

#

Createman kirjoitti:

Laittakaa ihmeessä kommenttia, mitä toimintoja/komponentteja haluaisitte tähän systeemiin saada jatkossa.

Haluaisin linkin lähdekoodien ja dokumentaation lataukseen :) Vai olenko nyt aivan puusilmä kun en näe missään linkkiä mistä projektin voisi ladata?

Createman [28.11.2008 09:19:28]

#

Ensimmäinen julkaisukelpoinen versio tulee toivottavasti tämän viikonlopun aikana.

Edit: Venähtää kouluhommien takia jonkin verran.

Edit2:
CSS-generointi aiheutti hieman muutoksia kirjaston rakenteeseen. Tarvittiin esimerkiksi uusi komponentti, WebPage, CSS-generoinnin avuksi.
Eka versio julkaistaan heti, kunhan olen saanut CSS-generoinnin tehtyä kaikille komponenteille ja jotain dokumentaatiota laadittua.

Smuliii [10.12.2008 17:10:28]

#

Hyvältä vaikuttaa. Innolla odotan julkaisua.

Createman [19.12.2008 17:56:34]

#

Koeviikosta taas selvitty ja lomille päästy...

Jos joku viitsii tuota palvelimellaan testata, niin oisin kiitollinen kaikesta palautteesta.

jo123 [26.12.2008 21:45:23]

#

Createman kirjoitti:

Laittakaa ihmeessä kommenttia, mitä toimintoja/komponentteja haluaisitte tähän systeemiin saada jatkossa.

Voisi panna ettei syntymävuoden pudotusvalikosta voi valita yli nykypäivää, vaikka php-koodi sen lähettämisen jälkeen tosin validoikin.

nax [05.01.2009 11:16:34]

#

Olen kokeillut tuota omalla palvelimellani ja hyvin toimii. Todella hyvä kirjasto. Ehdotukseni olisi, että voisi muuttaa esim. noita ListFieldejä siten, että 'liitoskentät' voisivat olla eri nimisiä. Taitaa olla kuitenkin vähän makuasia miten tuon haluaa tehdä. Olisi kuitenkin hyvä jos olisi mahdollisuus käyttää myös toista nimeämistapaa. Itse olen käyttänyt tietokannan taulukoissa nimeämistapana esimerkiksi: '.. WHERE henkilo.id = yritys.henkilo ..'. Mikähän on 'virallisin' tapa?

NiLon [10.01.2009 03:11:08]

#

Itse en ainakaan tykkää että tämä suoraan käsittelee tietokantaa luoden ylimääräisen yhteyden. Jotenka mahdollisuus käyttää jotain hienoa wrapperia datan hakuun olisi ihan kiva.

Createman [10.01.2009 15:16:30]

#

Kiitos testailusta ja palautteesta.

Olen tässä ollut kipeenä melkein koko joululoman, mutta jatkan taas kehitystä, kunhan koodauskipinä iskee.
Täytyisi itsellekin keksiä joku järjestelmä, jonka tällä WebComponentilla tekisi, jotta saisi jonkun 'oikean syyn' tehdä tätä innolla eteenpäin. Tällä hetkellä ohjelmointi-into on taas tuolla peliohjelmoinnin puolella, jota olen harrastanut enemmän. Laittakaa ehdotuksia, jos tulee mieleen ideaa jollekin järjestelmälle, jonka tekemiseen WebComponenttia voisi käyttää (mutta jonka tekemiseksi WebComponent ei vielä ole riittävän laaja).

jo123, erilaisia 'rajoituksia' tulee jossain vaiheessa lisää.
nax, tuommoisen voin tuohon jossain vaiheessa lisätä.
NiLon, voisitko tarkentaa?

jsbasic [29.01.2009 09:11:14]

#

Ei saisi hyväksyä henkilötietojen lisäämistä ilman nimeä.

Createman [04.04.2009 10:59:06]

#

Kehittäminen jatkuu taas, löytyi koodauskipinä ja konkreettista tarvetta paremmalle versiolle.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta