[PHP] Eenvoudig records manipuleren

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

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hi,

Ik ben op dit moment een project aan het uitdenken waarbij ik een beheersysteem moet gaan bouwen. Het project is vergelijkbaar met een NAW register, er zijn dus meerdere tabellen met relaties. Als beheersysteem moet je dus eenvoudig records kunnen toevoegen, verwijderen en wijzigen. Daarnaast zijn er ook nog categorieen en afbeeldingen die met veel-op-veel relaties gerelateerd zijn aan de persoon, dus naast het toevoegen/wijzigen van afbeeldingen voor een persoon moet ook eenvoudig een persoon kunnen worden toebedeeld aan categorieen en moeten categorieen kunnen worden toegevoegd en gewijzigd.

"Vroeger" zou ik voor add/del/edit allemaal aparte pagina's gemaakt hebben voor elk van de type records. Dit zou er dan toe leiden dat ik nu een grote hoeveelheid scripts moet gaan schrijven die elk een specifieke sql-query "uitvoeren"

Aangezien ik de laatste tijd soms "speel" met ASP.NET ben ik er eigenlijk achter gekomen dat in die taal, deze functies vrij eenvoudig en snel (inclusief validators op velden) kunnen worden gebouwd. Nu heb ik dus eigenlijk meerdere vragen:
  1. Zijn er op dit moment (bijvoorbeeld dreamweaver-)plugins of classes of weet ik veel wat, die de werking van ASP.NET benaderen
  2. Zijn er andere methoden die dit soort ontwikkel-processen kunnen bespoedigen
  3. Eenvoudige methoden om "kant-en-klare" View/Edit/Add/Delete achtige record-grids te bouwen?
  4. Of is het toch handiger dit op de taylor-made methode uit te voeren
Sorry voor mijn onduidelijkheid omtrent het project... maar dat is voor de vragen niet echt relevant volgens mij.

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
De term waar je naar zoekt is CRUD (Create Read/Retrieve Update Delete). Ik heb zelf nooit met kant en klare CRUD pakketten gewerkt, dus daar kan ik je niet bij helpen. Wellicht kun je via een zoekmachine goede resultaten vinden als je op "PHP CRUD" zoekt oid.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thx... ik ga ff googlen (ja echt met google, wil geen law-suites :P)

edit: Oei... hier is veel over te vinden... iemand die me uit ervaring de goede richting op kan sturen? Goeie implementaties, sites e.d.?

[ Voor 50% gewijzigd door Verwijderd op 07-11-2006 23:49 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Zoek ook even naar Active Record. Je kunt genoeg frameworks vinden ( mocht dat niet te veel van het goede zijn ) die CRUD geimplementeerd hebben. Je kunt dan aan de hand van Active Record en CRUD eenvoudig records etc aanpassen/verwijderen/aanmaken.

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

Als ik aan CRUD denk, denk ik aan het vertalen van je database tabel naar een object georienteerde class die dit voor je afhandelt. Hiervoor zijn goede PHP frameworks beschikbaar die dit heel makkelijk maken...

In de PEAR packages zit Pear:DB DataObjects, te vinden op: http://pear.php.net/package/DB_DataObject
Daarmee kun je vrij eenvoudig een class definieren die 1 op 1 mapped met je database tabel. Via simpele Add, Update en Remove methods kun je de data manipuleren zonder je handen vuil te maken aan de benodigde SQL statements.

Database Objects frameworks zijn er trouwens genoeg voor PHP te vinden. Van simpel tot heel geavanceerd. Je hebt ook de zogenaamde ORM (Object Relational Mapping) frameworks. Die gaan over het algemeen qua abstractie weer een stapje verder. Ook hierover is voor PHP veel te vinden. Een voorbeeld van een goede implementatie van ORM in PHP is bijv. Propel: http://propel.phpdb.org/trac/

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
RoR-achtige PHP MVC frameworks zoals CakePHP en CodeIgniter hebben ook scaffolding, waarmee je zonder 1 regel zelf te hoeven programmeren basic CRUD operaties kunt uitvoeren op willekeurige database tabellen. Bruikbaar voor het opstellen van een database, maar niet echt bruikbaar als CMS. (scaffolding == steigerbouw). De scaffolding-interfaces zijn gebasseerd op een ActiveRecord implementatie. Symfony framework kan hetzelfde, maar dan op basis van een echte ORM laag (gefaciliteerd door Propel zoals hierboven ook al als tip werd aangegeven), en kent ook mooie truucje om backends te genereren voor gerelateerde tabellen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm dat Propel ziet er wel heel interessant uit, had CakePHP ook even bekeken maar dat lijkt me een stuk lastiger! Het enige nadeel.... Propel maakt gebruik van PHP5.0 en laat ik dat nou juist niet kunnen gebruiken :(. Extra "requirement" is dus geschikt voor PHP4, maar zit inmiddels toch een beetje de kant op te denken van http://www.phpobjectgenerator.com/

Niet erg uitgebreid, maar wel eenvoudig te implementeren, en te begrijpen... wil namelijk wel graag ook weten waar ik mee bezig ben als ik iets doe :)

Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Er is nog wel een PHP4 runtime voor Propel 1.1:

http://propel.phpdb.org/t.../trunk/runtime-php4?rev=6

De generator is er alleen voor PHP5 maar die kan dus ook code genereren voor de PHP4 runtime. Wel jammer dat PHP4 support niet meer in Propel 1.2 en 2.0 zit.

Verder ken ik CakePHP niet, maar ik vind ActiveRecord in CodeIgniter echt veel gemakkelijker dan Propel, en het is veel sneller. Ok geen echte ORM, maar dat is voor de meeste PHP webprojecten toch niet zo belangrijk.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
CodeIgnitor is precies wat ik zoekt, werkt super makkelijk en snel als een trein!

Thx voor de adviezen, eindelijk kan ik een framework gebruiken :D
Pagina: 1