abonnement Unibet Coolblue
pi_112027075
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen.

Kan een Object zichzelf vernietigen? , tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiëren.

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
<?php
Class Product {

Global 
$db;

   function 
__construct() {
      
setProductInfo($_GET['id']);
   }

/**
 * Idee hiervan is dat hij de product info opslaat ,
 * het ID en als er geen ID is van het product dat hij zichzelf vernietigd.
 */
function setProductInfo($id){
  
$this->product_info $db->fetchAssoc($db->query("Select * from products_ where id = ' ".$id." ' "));
 if(!empty(
$this->product_info['id'])){
  return 
true;
}else{
 
destroy();
}

function 
destroy(){
 unset(
$this);
 return 
true;
}

}
?>

Ik zat ook al met namespaces te kijken alleen dat is alleen als je php 5.3.0 en daarboven hebt.
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
<?php
namespace DatabaseEntitiesKeuken
;
class 
Product
{
    
//inhoud
    
function getName()
    {
        return 
"Test1";
    }
};

namespace DatabaseEntitiesStofruimte;
class 
Product
{
     
// inhoud
     
function getName()
     {
        return 
"Test2";
     }
};


use 
DatabaseEntitiesKeukenProduct;
$product = new Product();
echo 
$product->getName();
use 
DatabaseEntitiesStofruimteProduct;
$product_stof = new Product();
echo 
$product_stof->getName();
?>
Idee is dat hij dan maar een paar classes inlaad ipv het hele bestand. en dubbelop namen kan laden.
Resultaat hoort "Test1Test2" uit te komen ongv. :P

[ Bericht 17% gewijzigd door cablegunmaster op 25-05-2012 19:39:18 ]
Redacted
pi_112030131
quote:
0s.gif Op vrijdag 25 mei 2012 17:04 schreef Pizzalucht het volgende:

[..]

Dat ligt meer aan ervaring. Met Drupal kan je eigenlijk alles aanpassen, als je weet hoe.
De documentatie van Drupal is over het algemeen ook erg goed.

Maar als je niet verder komt dan een module installeren, aanzetten en er dan achterkomen dat het niet precies is wat je zoekt, en dan stopt met proberen, dan is Drupal inderdaad niks voor je.

Ik werk ook bij een bedrijf waar we bijna alleen maar Drupal doen, en het is veel meer dan alleen "een kleine hack/aanpassing".
Ja ik heb ook meerdere drupal sites gemaakt, en inderdaad je kunt het zo aanpassen als je wilt, net als elk opensource pakket, maar het is absoluut niet ideaal. De code is niet OOP en erg rommelig en inefficient (maar daarmee wel weer flexibel).
Ik moest laatst een drupal site uitbreiden en in m'n template folder zat een waslijst aan view templates die allemaal weer losse stukjes content bevatten die werd aangesuurd door views. Oftewel een deel van je logica zit in de database (modules), een deel van je logica zit in templates (functies, config), een deel van je content zit in de database (nodes) en een deel van je content zit in templates (statische tekst). Verder zit er soms ook nog php code in je database om net iets verder te kunnen gaan dan er wordt aangeboden. Dan heb je nog de logica die nodig is om blocks/content op de juiste plaats te krijgen, dit is in het begin met taxonomy/context te doen, maar ook dit wordt een chaos als er meer pagina's, views, permissies, etc bijkomen...

Ik zie het zo; een framework als Zend of Yii is als een verzameling bouwmaterialen (bakstenen, balken, gereedschap, etc) waarmee je zelf alles kan maken wat je wilt. Drupal is als een complete caravan waar je zo een prefab bed- of keukenblokje kan bijprikken. Maar wil je een extra verdieping of serre, dan heb je een probleem (het 'kan' wel, maar het is erg lelijk).

[ Bericht 0% gewijzigd door Schepseltje op 25-05-2012 20:19:15 ]
pi_112030923
quote:
0s.gif Op vrijdag 25 mei 2012 18:55 schreef cablegunmaster het volgende:
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen.

Kan een Object zichzelf vernietigen? ,
Nee, waarom zou je dat willen?
quote:
tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiëren.
Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class.
Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller.
pi_112033032
quote:
0s.gif Op vrijdag 25 mei 2012 20:26 schreef Schepseltje het volgende:

Nee, waarom zou je dat willen?

Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class.
Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller.
Nieuwschierigheid :). Ik probeer nu iets op te zetten in een soort van MVC model.
Ik weet hoe het MVC model werkt, maar toch blijf ik verkennen wat kan en niet kan :)
Volgens mij konden Exceptions namelijk ook al niet in PhP :P

[ Bericht 5% gewijzigd door cablegunmaster op 25-05-2012 21:34:27 ]
Redacted
  vrijdag 25 mei 2012 @ 21:29:07 #105
25889 Sitethief
Fulltime Flapdrol
pi_112033544
http://projecteuler.net/

Ben inmiddels al met probleem 3 bezig. best wel interessant om eens wat wiskunde met php te doen :).
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  vrijdag 25 mei 2012 @ 21:58:58 #106
137776 boem-dikkie
Jedi Mind Baby!
pi_112034751
Tof Sitethief, ook even kijken.

Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. :')
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112034881
quote:
13s.gif Op vrijdag 25 mei 2012 21:58 schreef boem-dikkie het volgende:
Tof Sitethief, ook even kijken.

Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. :')
Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld.
Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt.
Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar.

Kijk anders even hiernaar: [SOLVED] Php date function wrong time
Redacted
  vrijdag 25 mei 2012 @ 22:09:12 #108
137776 boem-dikkie
Jedi Mind Baby!
pi_112035134
quote:
0s.gif Op vrijdag 25 mei 2012 22:02 schreef cablegunmaster het volgende:

[..]

Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld.
Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt.
Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar.

Kijk anders even hiernaar: [SOLVED] Php date function wrong time
Ik gooi de userinput met de strtotime functie in de database.

Dus de user zegt in een input veld: 25-05-2012 en met $datum = strtotime($datum); converteer ik het. Daarna het database riedeltje.

Servertijd staat gewoon goed volgens mij, als ik time() echo geeft hij gewoon de datum van vandaag weer.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112036305
Dan weet ik het even niet :P
Redacted
pi_112038396
http://php.net/manual/en/function.setlocale.php

let erop dat je hem anders instelt op windows als bij linux
pi_112044879
Al heb ik nog wel een beetje moeite om in OO-php te gaan denken. Komt wel goed ^O^
Redacted
  zaterdag 26 mei 2012 @ 10:23:19 #112
137776 boem-dikkie
Jedi Mind Baby!
pi_112045751
Wat?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  zaterdag 26 mei 2012 @ 10:24:45 #113
137776 boem-dikkie
Jedi Mind Baby!
pi_112045784
Je checkt $id nu helemaal niet he?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112045862
quote:
14s.gif Op zaterdag 26 mei 2012 10:24 schreef boem-dikkie het volgende:
Je checkt $id nu helemaal niet he?
Weet ik , tis een example :P

Ik zat hiernaar te kijken maar vond het nog een klein beetje onhandig.
http://www.websitemaken.be/index.php?page=show_item&id=316
En richting : http://www.phptutorial.be/global-variables.html om te kijken hoe ik het beste global variabelen kon gebruiken , lees heel veel over dat het onveilig is.

[ Bericht 11% gewijzigd door cablegunmaster op 26-05-2012 10:35:32 ]
Redacted
  zaterdag 26 mei 2012 @ 10:56:25 #115
137776 boem-dikkie
Jedi Mind Baby!
pi_112046317
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. :')
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112046502
quote:
14s.gif Op zaterdag 26 mei 2012 10:56 schreef boem-dikkie het volgende:
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. :')
Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P

Vragen die ik had waren:

1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?
2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creëren. met $_POST en afhandeling van $_GET. (filestructuur).
3. Hoe verwerk ik Smarty :P . (vermoedelijk met behulp van de View)

Daar zat ik eerder naar te kijken. :P

[ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 11:19:24 ]
Redacted
  zaterdag 26 mei 2012 @ 11:20:07 #117
137776 boem-dikkie
Jedi Mind Baby!
pi_112046699
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P

Probeer alleen maar te helpen hoor.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_112046738
quote:
7s.gif Op zaterdag 26 mei 2012 11:20 schreef boem-dikkie het volgende:

[..]

Probeer alleen maar te helpen hoor.
Ik dank je voor je hulp, als je vragen hebt stel ze.
Redacted
pi_112047086
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

...of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?

Daar zat ik eerder naar te kijken. :P
Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn.
pi_112047106
quote:
14s.gif Op zaterdag 26 mei 2012 11:42 schreef Devv het volgende:

[..]

Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn.
Duidelijk dat is ook het geval! ^O^
Redacted
pi_112047324
quote:
12s.gif Op zaterdag 26 mei 2012 11:09 schreef cablegunmaster het volgende:

[..]

Ik snap OO programeren In Java beter dan in Php :P daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen :D :P
Wat is er anders aan MVC in Java dan in PHP?
quote:
Vragen die ik had waren:

1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit?
Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij.
quote:
2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creëren. met $_POST en afhandeling van $_GET. (filestructuur).
3. Hoe verwerk ik Smarty :P . (vermoedelijk met behulp van de View)
Smarty (of een ander templating systeem) hoort in de view.
pi_112047597
quote:
0s.gif Op zaterdag 26 mei 2012 11:55 schreef Light het volgende:

Wat is er anders aan MVC in Java dan in PHP?

[..]

Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij.

[..]

Smarty (of een ander templating systeem) hoort in de view.
1. geen idee , gewoon nog niet mee gewerkt.
2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false.
en dan het toepassen. met Getdb(); in elke klasse :)?
Redacted
  zaterdag 26 mei 2012 @ 12:12:39 #124
111382 Ofyles2
Bestemming: onbekend
pi_112047651
quote:
14s.gif Op zaterdag 26 mei 2012 10:56 schreef boem-dikkie het volgende:
Ben je al zo ver dat je MVC begrijpt?
Ik heb mezelf schromelijk overschat.

Ik begrijp MVC niet goed genoeg, ik moet met een geheel nieuw plan komen.
pi_112047775
quote:
0s.gif Op zaterdag 26 mei 2012 12:08 schreef cablegunmaster het volgende:

[..]

1. geen idee , gewoon nog niet mee gewerkt.
De structuren zijn gewoon hetzelfde :)
quote:
2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false.
en dan het toepassen. met Getdb(); in elke klasse :)?
1
2
3
4
5
6
7
8
9
<?php
private $db;
public function 
setDb(MyDatabaseClass $db) {
    
$this->db $db;
}
public function 
getDb() {
    return 
$this->db;
}
?>
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')