[PHP/MySQL] Code-templates voor database applicaties ?

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

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Hallo,

Ik heb een database in MySQL .. nou wil ik hiervoor een leuke webinterface hebben waarin men (of ik alleen eigenlijk) kan bekijken, wijzigen, toevoegen en verwijderen .. oftewel de standaard database operaties. Maar dan wel veilig en hufter proof (veilig tegen sql-injects etc).

Optie 1 is natuurlijk om dit alles vanaf de grond zelf te programmeren .. maar ik vroeg mij af of er ook bepaalde high-level framework achtige code bestaat waarvan de 'model/controller-code' reeds klaarstaat. Dus een soort van template code waarin je alleen nog maar bepaalde variabelen hoeft te wijzigen m.b.t. JOUW database en je daarna een soort standaard code gegenereerd krijgt. Ik heb zoiets laatst eens gezien in een filmpje van Ruby on Rails.

Kan iemand mij een duw in de goede richting geven ? Of een gouden tip ?
En dan bedoel ik niet een simpele verwijzing naar PEAR of Hotscripts.com .. want dat ken ik .. maar daar heb ik tot op heden nog niets gevonden.

[ Voor 5% gewijzigd door BoXie op 22-01-2006 02:18 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Heb je niet iets aan PHPMyAdmin dan? :?
http://www.phpmyadmin.net/home_page/index.php

Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ja ok .. uiteraard. Maar voor dagelijkse zaken ga je niet PHPMyAdmin'en ... dan wil je een leuke 'gebruikers' interface en geen admin-tool.

Dus ik vraag me af , bestaat er een soort basis framework waarop je kunt voortbouwen. Er moet toch iets zijn zodat je niet alle code vanaf 0 hoeft te schrijven (met alle evt. veiligheidsfouten erin).

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:01
Topic heropend na overleg met TS

De topicstarter is blijkbaar opzoek naar een framework waar hij zelf verder kan opbouwen.

[ Voor 78% gewijzigd door whoami op 22-01-2006 14:58 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Bedankt whoami,

Ik zoek inderdaad geen kant en klare code, maar een soort van framework / generator achtig iets wat alvast de basis forms klaarzet en de meest simpele 'update, view, delete etc' code op een veilige 'best-practice' manier aanmaakt. Hierop kun je dan als developer verder ontwikkelen.

Ik denk dat je met MM Dreamweaver als IDE al een heel eind komt , maar misschien dat er ook echte PHP oplossingen zijn voor zoiets. Of wordt elk database-connected project echt van de grond af aan opgebouwd?

Acties:
  • 0 Henk 'm!

  • brokenp
  • Registratie: December 2001
  • Laatst online: 22:15
ik heb zelf geen ervaringen met MVC frameworks in PHP, maar misschien is http://www.phpmvc.net/ iets?

Heb je zelf al gezocht, en iets gevonden?
Als je niets gevonden hebt, hier http://www.phpwact.org/php/mvc_frameworks vind je een overzicht van PHP MVC frameworks.
Als ze niet voldeden, waarom dan niet?

Acties:
  • 0 Henk 'm!

Verwijderd

Is dit nou niet iets wat je makkelijk in Ruby on Rails kan maken? Kost je natuurlijk wel wat tijd om de taal machtig te worden, maar zulke standaardapplicaties kun je dan wel erg snel ontwikkelen.

Edit: Ow, dat had je zelf ook al door. Maar wat is er dan tegen om het in RoR te doen?

[ Voor 19% gewijzigd door Verwijderd op 22-01-2006 15:25 ]


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Dit gaat inderdaad vrij snel in RoR, ik heb er even naar gezocht en het heet daar 'scaffolding' .

Zie ook http://media.rubyonrails....ails_take2_with_sound.mov

Ik had gehoopt dat er ook zoiets bestond voor PHP. Ik zie wel dat het 'CakePHP' project er mee bezig is.

Maar ik ga sowieso eens de MVC overzicht link van 'brokenp' bekijken .. die kende ik nog niet .

RoR draait helaas (nog) niet op mijn webservers .. dus dat is nog geen optie.

Bedankt

[ Voor 10% gewijzigd door BoXie op 22-01-2006 16:08 ]


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 22:47
Klinkt misschien niet als wat je wilt horen, maar als het je alleen maar gaat om standaart operaties ben je denk ik net zo snel klaar als je't zelf even schrijft.

Vooral ook de voorbeelden op php.net kunnen hierbij nuttig zijn: Mysql_connect

En nog hipper: Mysql_fetch_assoc

Uberhipst: Mysql_query.

Bij die laatste staat zelfs een compleet voorbeeld om veilig een databaseconnectie op te bouwen en data op te vragen:
PHP:
1
2
3
4
5
6
7
8
9
// Formulate Query
// This is the best way to perform a SQL query
// For more examples, see mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
   mysql_real_escape_string($firstname),
   mysql_real_escape_string($lastname));

// Perform Query
$result = mysql_query($query);


Aangezien je hoe dan ook zelf je queries zal moeten opbouwen (tenzij je echt een simpele variant van phpMyAdmin zoekt, maar dan kun je net zo goed een phpMyAdmin user aanmaken met alleen select rechten oid) en je formulieren zal moeten maken denk ik dat je met deze 3 functies net zo snel je beheer-pagina voor elkaar hebt als wanneer je een custom pakket / taal zou gaan leren en daar vervolgens aanpassingen op gaat maken :)

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Er zijn wel wat CRUD classes te vinden op internet voor PHP. Die dingen doen denk ik precies wat jij wilt.

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Uit het Ruby on Rails topic kwam ik CakePHP tegen.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou ook eens kijken naar ATK (http://www.achievo.org/atk)

erg mooi en robuust framework om erg snel databases te ontsluiten.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  class users_edit extends atkNode
  {
    function users_edit()
    {
      $this->atkNode("users_edit",NF_NO_ADD|NF_LOCK); // node() constructor is *not* called automatically!
     
      $this->add(new atkAttribute("user_id",AF_HIDE|AF_PRIMARY|AF_AUTO_INCREMENT),"main");
      $this->add(new atkAttribute("username",AF_OBLIGATORY|AF_UNIQUE|AF_SEARCHABLE),"main");
      $this->add(new atkAttribute("user_from",AF_SEARCHABLE),"main");
      $this->add(new atkAttribute("user_email",AF_SEARCHABLE),"main");
      $this->add(new atkAttribute("user_subtitle",AF_HIDE_LIST),"main");
      $this->add(new atkDummyAttribute("spacer0","<HR>",AF_HIDE_LIST),"main");
      $this->add(new atkAttribute("user_posts",AF_READONLY),"main");
      $this->add(new atkAttribute("user_regdate",AF_READONLY|AF_HIDE_LIST),"main");
      $this->add(new atkAttribute("user_lastvisit",AF_READONLY|AF_HIDE_LIST),"main");
      $this->add(new atkDummyAttribute("spacer","<HR>",AF_HIDE_LIST),"main");
      $this->add(new atkTextattribute("user_sig",3,AF_HIDE_LIST),"main");
      $this->add(new atkDummyAttribute("spacer2","<HR>",AF_HIDE_LIST),"main");

      $this->add(new atkAttribute("user_timezone",AF_HIDE_LIST),"main");
      $this->add(new atkAttribute("user_website",AF_HIDE_LIST),"main");
      $this->add(new atkAttribute("user_avatar",AF_HIDE_LIST),"main");
      $this->add(new atkBoolAttribute("user_level"),"main");
      $this->add(new atkBoolAttribute("user_backoffice"),"main");
     
     // ban/users notes tab blad

      $this->add(new atkAttribute("user_lastvisit",AF_READONLY|AF_HIDE_LIST),"ban-note");
      $this->add(new atkOneToManyRelation("user_banned","users.user_banned","ban_userid",AF_HIDE_LIST),"ban-note");
      $this->add(new atkOneToManyRelation("user_notes","users.user_notes","user_id",AF_HIDE_LIST),"ban-note");
      

      // password op eigen tabblad, voorkomt per ongeluk editen
      $this->add(new atkPasswordAttribute("user_password",AF_PASSWORD_NOVALIDATE|AF_HIDE_LIST),"password");
      $this->setIndex("username");
      $this->setTable("phpbb_users");
    }


Dat stukje code geneert een interface voor het bewerken van gebruikers op een phpbb forum zonder dat ik me druk hoef te maken over sql lagen, formulieren afvangen en controleren of alles ingevuld is. Als je een gebruiker bewerkt komen alle velden automagisch goed te staan.

en dat komt er dan zo uit te zien (afhankelijk van het theme dat je gebruikt uiteraard)

Afbeeldingslocatie: http://www.xs4all.nl/~ajcb/atk.png


Erg handig, er zit wel een learn curve aan, maar deze is imho een stuk minder stijl als die van de meeste andere frameworks.

[ Voor 17% gewijzigd door Verwijderd op 22-01-2006 23:16 . Reden: screen shotje toegevoegt :) ]


Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Bedankt mensen voor de input !! Ben al een stuk wijzer.
Uiteraard weet ik hoe ik zelf een database-connectie kan opzetten (al valt hier altijd wel wat aan bij te schaven) .. maar was dus benieuwd naar best-practices / framework voor read, update, modify etc. DB functionaliteit.

Ik ga verder op onderzoek uit binnen de bestaande frameworks. Ik ben verder erg benieuwd naar wat het Zend framework gaat bieden straks :

http://www.zend.com/collaboration/framework_overview

Ik denk dat dit een goede stap kan zijn om PHP enterprise ready te maken.

Acties:
  • 0 Henk 'm!

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
flashin schreef op zondag 22 januari 2006 @ 18:45:
Er zijn wel wat CRUD classes te vinden op internet voor PHP. Die dingen doen denk ik precies wat jij wilt.
Hoe simpel kan een antwoord zijn ! Ik was dus niet bekend met de term 'CRUD' .. maar als je hierop zoekt .. vind je inderdaad precies wat ik zoek .. zoals bijvoorbeeld :

http://homepage.mac.com/sbarnum/code/CRUD/

En bekijk zeker eens de demo's van dit Framework .. erg interessant dit !!

http://www.qcodo.com/demos/

[ Voor 13% gewijzigd door BoXie op 23-01-2006 00:50 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Ik heb zelf wel eens gestoeid met http://titaniclinux.net/daogen/.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1