Namespace geeft error: 'undefined constant'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

C#.NET/Unity Developer

Functieomschrijving Voor een gewaardeerde werkgever in de omgeving van Breda zijn wij op zoek naar een software ontwikkelaar. Dit bedrijf houdt zich bezig met de ontwikkeling van WMS Software (C#/Unity & SQL). Past dit bij jou? Lees snel verder! Jouw werkzaamheden zullen er als volgt uitzien: Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Samen met 6 applicatieontwikkelaars hebben jullie de verantwoordelijkheid voor de uitbreiding en ontwikkeling van de webapplicaties; Het uitvoeren van updates/aanpassingen aan de huidig draaiende applicaties; Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software. Bedrijfsprofiel Wie

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

Database Developer

Functieomschrijving Wat ga je doen? Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

Fullstack developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

C#.NET ontwikkelaar

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Je bouwt webshops, webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Framework en C#. Je zorgt voor de optimalisering van bestaande software en de automatisering van

Bekijk vacature »

C#.NET Developer

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »
- Raoul -

- Raoul -

07/11/2012 23:29:30
Quote Anchor link
Hallo PHP-ers,

Heb een probleempje met namespaces in mijn project.
Fout die ik krijg:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Undefined constant 'Whear\User' in /Applications/XAMPP/xamppfiles/htdocs/lib/Whear/User/User.php on line 3


'k Snap niet echt hoe namespaces als constant worden gezien? Ik gebruik PHP54 dus het is zeker compatibel

Hier een deel van m'n code:

index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
require 'lib/Whear/User/User.php';

$user = new \Whear\User;
?>


User.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

namespace \Whear\User;

class User extends \Whear\DomainObject\DomainObjectAbstract
{
    protected $_data = array('username' => 'Raoul', 'password' => 'test');
}

?>


Als iemand mij hiermee kan helpen?
Bedankt.
 
PHP hulp

PHP hulp

10/01/2025 14:28:50
 
Reshad F

Reshad F

08/11/2012 00:24:53
Quote Anchor link
Haal de \ is weg. Dat veroorzaakt de fatal error.

hier voorbeeld zie example 10 in het voorbeeldje
 
- Raoul -

- Raoul -

08/11/2012 00:31:35
Quote Anchor link
Dat werkt bedankt, maar ik heb nu nog steeds een probleem dat ik mijn classes met includen. Ik dacht dat dat niet moest met namespaces... huh?

Toevoeging op 08/11/2012 00:34:49:

Heb nu alles wel geïnclude, maar binnen User.php krijg ik nu wel de error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Class 'Whear\DomainObject\DomainObjectAbstract' not found in /Applications/XAMPP/xamppfiles/htdocs/lib/Whear/User/User.php on line 6


Ik heb de DomainObjectAbstract geïnclude in mijn index :s...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

namespace Whear\DomainObject\DomainObjectAbstract;

abstract class DomainObjectAbstract
{

//...
?>
Gewijzigd op 08/11/2012 00:35:15 door - Raoul -
 
Reshad F

Reshad F

08/11/2012 01:11:02
Quote Anchor link
Waarom zou je classes moeten includen wanneer je gebruik kan maken van een autoloader?

de loader die ik gebruik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

/*
 * Loader
 */


function my_autoloader($className)
{

// haal de base dir op.
  $base = dirname(__FILE__);
  
  // het pad ophalen
  $path = $className;

  // alle paden samenvoegen tot waar ik zijn moet en de phpfile eraan plakken.
  $file = $base . "/lib/" . $path . '.php';      
  
  // als file bestaat haal op anders error
  if (file_exists($file))
  {

      require $file;
  }

  else
  {
      error_log('Class "' . $className . '" could not be autoloaded');
      throw new Exception('Class "' . $className . '" could not be autoloaded from: ' . $file);
  }
}


spl_autoload_register('my_autoloader');

?>


Maar mijn loader is ook gemaakt om alles in de lib directory te gooien en het daarvanuit op te halen weer.. ik neem aan dat als je met namespaces werkt je verschillende mappen hebt. duss je moet de loader aanpassen. zie hier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
class Autoloader {
    static public function loader($className) {
        $filename = "Classes/" . str_replace('\', '/', $className) . ".php";
        if (file_exists($filename)) {
            include($filename);
            if (class_exists($className)) {
                return TRUE;
            }
        }
        return FALSE;
    }
}
spl_autoload_register('
Autoloader::loader');
?>


het enige wat je nu hoeft te doen is de loader invoegen dus gewoon bovenin

require_once("Classes/Autoloader.php"); o.i.d..
 
- Raoul -

- Raoul -

08/11/2012 07:28:35
Quote Anchor link
Ja maar een autoloader gebruiken is nu niet relevant met mijn probleem.
 
Wouter J

Wouter J

08/11/2012 07:42:11
Quote Anchor link
Het probleem is dat je de klasse DomainObjectAbstract in de namespace Whear\DomainObject\DomainObjectAbstract zet. Dat betekend dus dat de klasse: Whear\DomainObject\DomainObjectAbstract\DomainObjectAbstract wordt. Ik denk dat je die laatste DomainObjectAbstract bij de namespace moet weglaten.

Tevens nog even over je eerste error: De \ vooraan betekend vanaf de root. De Use statements zijn altijd vanaf de root en PHP wil daar dus niet nog eens de \ hebben.
 
- Raoul -

- Raoul -

08/11/2012 08:01:29
Quote Anchor link
Dankjewel voor je reactie op Wouter. Heb nu op DomainObjectAbstract en DomainObjectException dit staan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
namespace Whear\DomainObject;
// ...
?>

Maar de User.php doet nog steeds irritant, krijg nog steeds de error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Class 'Whear\DomainObject\DomainObjectAbstract'


Hier mijn code van User.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

namespace Whear\User;

class User extends \Whear\DomainObject\DomainObjectAbstract
{
    protected $_data = array('username' => 'Raoul', 'password' => 'test');
}

?>


Die \ bij de extends moet ik er wel bij zetten want anders doet hij als namespace:
\Whear\User\Whear\DomainObject\DomainObjectAbstract
 
Wouter J

Wouter J

08/11/2012 10:07:35
Quote Anchor link
Je laadt de klasse wel in?

En inderdaad, als je een namespace gewoon zo in je script gebruikt moet je de \ wel gebruiken. Al raad ik je aan alles in use statements te zetten, behalve de klasse in de root namespace.
 
- Raoul -

- Raoul -

08/11/2012 17:07:33
Quote Anchor link
Ik laad alle klassen in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

require 'lib/Whear/User/User.php';
require 'lib/Whear/DomainObject/DomainObjectAbstract.php';
require 'lib/Whear/DomainObject/DomainObjectException.php';

$user = new Whear\User;
?>
Gewijzigd op 08/11/2012 17:16:14 door - Raoul -
 
Wouter J

Wouter J

08/11/2012 17:17:16
Quote Anchor link
Je laat User voor DomainObjectAbstract in, daardoor krijg je de error in User. Beter is het om een autoloader te gebruiken, en anders goed nadenken over de volgorde waarin je ze requried.
 
- Raoul -

- Raoul -

08/11/2012 17:18:00
Quote Anchor link
Goed gezien, bedankt Wouter! Even zoeken achter een autoloadertje die werkt met verschillende directories zoals bij mij:
Afbeelding
Gewijzigd op 08/11/2012 17:22:39 door - Raoul -
 
Wouter J

Wouter J

08/11/2012 17:26:19
Quote Anchor link
Gebruik de PSR-0 standards, en dat doe je al, en je kan hun autoloader gebruiken. Of die van Symfony of Zend of pak die van Composer. Eigenlijk is elke hedendaagse autoloader gemaakt voor meerdere directories.
 
- Raoul -

- Raoul -

08/11/2012 17:35:52
Quote Anchor link
Bedankt! Moet ik die autoloader in een apart bestand zetten of mag dat gewoon in mijn index blijven staan?
En als het in een ander bestand moet, waar moet dat dan? In welk mapje? Iets als /lib/Whear/Autoloader/Autoloader.php?
Dat is dan wel weer lelijk, want het is geen class en ook al is het een class, het is geen OO.
 
Wouter J

Wouter J

08/11/2012 17:37:36
Quote Anchor link
Je kan het op verschillende plekken doen:
- Composer plaatst hem standaard in vendors/autoloader.php
- Symfony2.0 heeft hem in vendors/Symfony/Components/ClassLoader/Autoloader.php staan

Je moet de klasse sowieso in een apart bestandje zetten, waar je hem zet mag je helemaal zelf weten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.