[oop] niet bestaande class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Rotterdam! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

Ervaren Full stack developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house functie bij een bedrijf met enorme groeipotentie? Ben jij op zoek naar een nieuwe uitdaging vol afwisseling en gezelligheid? Dan ben je bij dit bedrijf aan het juiste adres! Wij zijn in omgeving Breda op zoek naar een ervaren full stack developer. Je gaat werken voor een zeer gewilde werkgever met goede arbeidsvoorwaarden. Je krijgt een plekje in het jonge IT team, work hard, play hard is hier duidelijk het motto! Jouw werkzaamheden zien er als volgt uit: Jij bent verantwoordelijk voor het ontwerpen en bouwen van webapplicaties. Je bent

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Fullstack Software Developer

Bedrijfsomschrijving Functieomschrijving Java ontwerpen, bouwen en testen (T-shaped). Als senior ontwikkelaar ben je bekend in zowel de back-end als de frontend van een applicatie. Angular, Continious Delivery / Integration. Een ervaren iemand die de leiding kan nemen, een weg vindt in nieuwe situaties, en in oude applicaties. Initiatiefrijk, bekend met de (technische) omgevingen die we bij duo gebruiken, niet te beroerd om collega’s te helpen. Als senior programmeur in staat om op te treden als lead programmeur. Ondersteunt de testers bij de testautomatisering en minder ervaren programmeurs bij dagelijks werkzaamheden. Dit laatste met name op het gebied van Angular. Achtergrond

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

Back end developer PHP

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

17/02/2014 19:48:03
Quote Anchor link
In navolging van mijn eerdere topic vandaag, ben ik tot de conclusie gekomen dat ik mijn vraag wellicht anders / breder moet stellen.

Stel ik wil een class Foo gebruiken:

$foo = new Foo();

Echter, om een of andere reden kan het bestand wat bij deze class hoort niet geladen worden (bijvoorbeeld omdat het niet bestaat). Kan ik de fout die hieruit volgt dan op de een of andere manier opvangen?
 
PHP hulp

PHP hulp

26/04/2024 16:14:51
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/02/2014 19:56:21
 
Ozzie PHP

Ozzie PHP

17/02/2014 20:08:32
Quote Anchor link
Ger, dankjewel. Wat voor error wordt er in zo'n situatie gegooid? Waar kan ik dat terugvinden?
 
Wouter J

Wouter J

17/02/2014 20:27:29
Quote Anchor link
In je script door het uit te voeren...
 
Ozzie PHP

Ozzie PHP

17/02/2014 20:32:55
Quote Anchor link
Oké, dan krijg ik een "PHP Fatal error". Hoe vang je die dan op?
 
Wouter J

Wouter J

17/02/2014 20:40:47
Quote Anchor link
"The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called."
Bron: http://www.php.net/manual/en/function.set-error-handler.php

ValueConstantDescription
1E_ERRORFatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.
4E_PARSECompile-time parse errors. Parse errors should only be generated by the parser.
16E_CORE_ERRORFatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP.
32E_CORE_WARNINGWarnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP.
64E_COMPILE_ERRORFatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine.
128E_COMPILE_WARNINGCompile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine.
2048E_STRICTEnable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code.

Bron: http://www.php.net/manual/en/errorfunc.constants.php

Gelukkig kunnen mensen altijd zo goed documentatie lezen...
Gewijzigd op 17/02/2014 20:43:35 door Wouter J
 
Ozzie PHP

Ozzie PHP

17/02/2014 20:45:46
Quote Anchor link
Rustig Wouter, relax... niet iedereen is zo technisch als jij. Niet gelijk zo cynisch worden. Is echt niet nodig.

Ik snap het eerlijk gezegd nog steeds niet. Ik dacht dat je een FATAL error niet kon opvangen? Maar kan dan dus wel???
 
Wouter J

Wouter J

17/02/2014 21:14:12
Quote Anchor link
"The following error types cannot be handled with a user defined function: E_ERROR"

"E_ERROR - Fatal run-time errors"

Hier is niks technisch aan... Gewoon domweg wat engels lezen en iets verder kijken en iets preciezer de doc lezen en iedereen kan hier makkelijk op komen.
 
Ozzie PHP

Ozzie PHP

17/02/2014 21:25:18
Quote Anchor link
Nee Wouter, verschillende mensen... verschillende interpretaties. Ik bedoel dit overigens niet lullig tegenover jou, maar jij bent veel technischer dan velen hier op het forum. Dat betekent dat je bepaalde dingen sneller doorziet en dat je sneller verbanden kunt leggen. Wees daar vooral blij om, en probeer andere mensen daarmee te helpen. Maar ga er niet vanuit dat andere mensen hetzelfde denken en kunnen als jij. Ieder mens heeft zijn/haar eigen kwaliteiten op diverse vlakken.

Dat gezegd hebbende... een PHP Fatal error is dus een run-time error? En die kan ik niet opvangen... dus anders gezegd, als er een object wordt aangemaakt dat niet vantevoren is geladen, klapt je applicatie er gewoon uit en daar is niks tegen te doen. Correct?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/02/2014 21:46:58
Quote Anchor link
Leuk hé PHP?
Even buiten code fouten, de ene keer een catchable error en dan andere keer niet (bv als je bij je database connectie een niet bestaande host opgeeft, kan je dat afvangen met try ... catch)
 
Ozzie PHP

Ozzie PHP

17/02/2014 21:51:33
Quote Anchor link
>> Leuk hé PHP?

Nou :-/

>> de ene keer een catchable error en dan andere keer niet

Ja, in dit geval dus niet... dus vraag ik me af hoe je daar mee om moet gaan. Wat als jij een class aanroept, en om een of andere reden is het class bestand verdwenen. Hoe ga je daar dan mee om? De autoloader een exception laten gooien als het bestand niet bestaat? Ik zie niet echt een andere mogelijkheid :-s
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/02/2014 22:17:15
Quote Anchor link
Niet zo :s(ip), dat hoort bij programeren
 
Ozzie PHP

Ozzie PHP

17/02/2014 22:23:41
Quote Anchor link
Jawel, dat snap ik ook wel. Maar het is niet altijd leuk. Ik probeer een oplossing te vinden, maar niemand kan me helpen, terwijl het toch een probleem zou moeten zijn waar iedereen mee te maken heeft :(
 
Mar cel

Mar cel

17/02/2014 22:33:06
 
Ozzie PHP

Ozzie PHP

17/02/2014 22:44:27
Quote Anchor link
Hmmm, dankjewel voor het meedenken Marcel, maar als ik het goed begrijp kun je de error daarmee niet herstellen. Dus stel dat ik een module wil laden en daar ontbreekt een file, dan kan ik de rest van de pagina niet laden.

Volgens mij is de enige optie om in de autoloader te controleren of het bestand bestaat, en zo niet, dan een exception gooien. Maar waarom reageert er niemand op dit idee? Weten jullie het antwoord ook niet?
 
Wouter J

Wouter J

17/02/2014 22:54:30
Quote Anchor link
In jouw autoloader een exception gooien, en die 3rd party autoloader dan? Heeft die niks meer te zeggen? Het is geen verhaal met 2 kanten: file exists -> class bestaat, file not exists -> class bestaat niet.

En ga eerst eens na of je hele idee wel klopt. Je wilt je applicatie verlaten gaan als er een klasse niet bestaat? Hoe dan? Stel je Container klasse bestaat niet meer, hoe wil de applicatie verder gaan? Hetzelfde geldt voor zowat elke andere klasse die je opvraagt, je vraagt ze namelijk op omdat je ze nodig hebt...
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/02/2014 22:54:34
Quote Anchor link
Volgens mij heb je antwoord zelf al gegeven.
Kortom: Je moet een fatal error voorkomen.
 
Ozzie PHP

Ozzie PHP

17/02/2014 23:20:59
Quote Anchor link
>> In jouw autoloader een exception gooien, en die 3rd party autoloader dan? Heeft die niks meer te zeggen?

Je kent toch namespaces toe aan je autoloader? Op het moment dat een class-naam tot die betreffende namespace behoort, maar het bestand kan niet worden gevonden. Waarom kun je dan geen exception gooien?

>> Stel je Container klasse bestaat niet meer, hoe wil de applicatie verder gaan?

Klopt, ik kan me voorstellen dat je stopt als je container class niet bestaat. Maar probeer het even anders te zien. Stel ik heb op een homepage ergens een blokje "laatste nieuws" staan. Nu kan een bepaalde class van die module niet geladen worden. Moet ik dan de hele website platgooien? Want dat is wat jij nu toch zegt?
 
D Vivendi

D Vivendi

19/02/2014 13:12:26
Quote Anchor link
Als ik het goed begrijp heb je een autoload class zodat je in je code simpelweg iets als dit kan doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$obj = new EenClass();


Je autoloader laadt die class dan voor je. Nu wil je weten hoe je de error kunt afvangen die je krijgt wanneer je autoloader de opgevraagde class niet kan vinden?

Je hebt daar een aantal opties voor. Je voorkeur hangt een beetje af van wat je precies wilt bereiken. Ik zou in elk geval niet aan "set_error_handler" sleutelen.

Dan is de enige manier om te checken of een class bestaat in je autoloader. Je zou bijvoorbeeld dit kunnen doen:

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
function __autoload($name) {
    if(class_exists($name)) {
        require_once($name);
    }
    else {
        throw new MissingException("Kan class $name niet vinden.");
    }
}

try {
    $obj = new EenClassDieNietBestaat();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}


Je zou bijvoorbeeld ook een soort "Error" object kunnen vullen ipv met exceptions te werken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
function __autoload($name) {
    if(class_exists($name)) {
        require_once($name);
    }
    else {
        Errors::Add ( "Kan class $name niet vinden." );
    }
}


Je kan dan bijvoorbeeld altijd nog de "Errors" class uitlezen in je views en daar de melding geven dat een module niet geladen kon worden. Of het wegschrijven naar een log file oid.


Denk alleen dat er wel meer problemen optreden wanneer een module niet gevonden wordt. Waarschijnlijk wordt kort daarna ook die class gebruikt om methods aan te roepen en properties uit te lezen. Maar ja, als er geen instance is gevonden krijgt je natuurlijk weer errors van: "Accessing property on non object" oid.

Dus bedenkt goed of je je applicatie wel echt door wilt laten gaan als een class niet gevonden kan worden. Vaak is dit niet zo'n handig idee.
Gewijzigd op 19/02/2014 13:13:26 door D Vivendi
 
Wouter J

Wouter J

19/02/2014 13:15:41
Quote Anchor link
Vivendi, het is beter om spl_autoload_register te gebruiken, aangezien die meerdere autoloaders chained.
 
D Vivendi

D Vivendi

19/02/2014 13:21:30
Quote Anchor link
Ja klopt, dat weet ik. Ik gebruikte __autoload meer als simpele illustratie. Maar inderdaad, de spl_autoload class hiervoor had misschien beter geweest om als voorbeeld te geven.
Gewijzigd op 19/02/2014 13:21:54 door D Vivendi
 

Pagina: 1 2 volgende »



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.