directory iterator real time?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel 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! Een deel van jouw werkzaamheden: 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 en Power BI.

Bekijk vacature »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

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 »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Software Developer Mendix / Maatschappelijk Betrok

Dit ga je doen Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Werken met Scrum methodiek; Ontwikkelen van vooruitstrevende oplossingen; Meedenken over nieuwe applicaties en ontwikkelingen; On the job eigen maken van de Mendix omgeving. Hier ga je werken Deze dynamische en snelgroeiende organisatie begeeft zich in de recyclingbranche. Zij nemen op duurzame en efficiënte manier de recycling op zich. Vanwege hun snelle groei zijn zij op zoek naar een young professional die zich graag wilt ontwikkelen als Mendix Developer. Je komt te werken binnen een IT team van +/- 15 medewerkers. Het huidige ‘vaste’

Bekijk vacature »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »
Ozzie PHP

Ozzie PHP

23/01/2014 14:14:01
Quote Anchor link
Ola,

Ik zat me iets af te vragen... als je een directory iterator hebt die je toekent aan een variabele, is die iterator dan "real-time"? Dus stel je kent de iterator toe aan een variabele en een paar miliseconde later wordt er een nieuw bestand toegevoegd aan de directory. Is dat bestand dan gelijk een onderdeel van de iterator? Ik denk zelf eigenlijk van niet en dat de iterator gewoon 1 keer wordt ingelezen, maar zeker weten doe ik het niet. Weten jullie dit toevallig?
 
PHP hulp

PHP hulp

29/12/2024 13:11:41
 
Ward van der Put
Moderator

Ward van der Put

23/01/2014 14:44:52
Quote Anchor link
Dat hangt ervan af hoe je die iterator bouwt…

Bijvoorbeeld scandir() geeft je een array met een momentopname van een directory. Ga je die array daarna verwerken, dan kan er inderdaad een verschil ontstaan tussen de werkelijke directory-inhoud en de kopie daarvan in de array.

Kun je anders wat code laten zien?
 
Ozzie PHP

Ozzie PHP

23/01/2014 14:52:44
Quote Anchor link
Ik bedoel zeg maar zoiets als dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$iterator
= new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
foreach ($iterator as $path) {
  // doe iets met de paden
}
?>

Stel nu bijv. dat ik alle paden wil tonen, en terwijl de foreach loop wordt uitgevoerd, wordt er nog een file in de directory opgeslagen. Krijg ik die dan nog te zien?
 
Wouter J

Wouter J

23/01/2014 15:38:34
Quote Anchor link
Ik zou het niet weten. Als de iterator lazy is opgebouwd (meer info) dan is dat wel zo, behalve als ie voor het huidige bestand is.

Ik denk echter dat de DirectoryIterator niet lazy is en het dus niet wordt geupdated.
 
Ozzie PHP

Ozzie PHP

26/01/2014 23:40:54
Quote Anchor link
Excuus Wouter dat ik niet meer heb gereageerd. Ik heb (zover ik weet) geen mail ontvangen dat er iemand had gereageerd, dus ik zie je reactie nu voor het eerst.

Ik had gehoopt dat Ward na zijn opmerking "Dat hangt ervan af hoe je die iterator bouwt…" nog even zou reageren eigenlijk...

Iemand die zeker weet hoe de vork in de steel zit?? Ik hoor het graag.
 
Ward van der Put
Moderator

Ward van der Put

27/01/2014 08:39:30
Quote Anchor link
Je zou het zelf kunnen testen hè:

1. Maak een nieuwe directory met subdirectory's.
2. Maak een new RecursiveDirectoryIterator voor dat pad.
3. Verwijder de directory.
4. Kijk wat de RecursiveDirectoryIterator doet.

Ik vermoed (en hoop) dat de RecursiveDirectoryIterator niet zomaar exclusieve toegang tot het pad heeft. Dat zou namelijk allerlei andere processen in de weg zitten waarbij bestanden en directory's moeten worden opgeslagen, verwijderd, hernoemd, gewijzigd en dergelijke binnen dat pad.
 
Ozzie PHP

Ozzie PHP

27/01/2014 15:28:05
Quote Anchor link
Ah zo ja, dat zou ik inderdaad kunnen proberen. Had ik zelf eigenlijk ook kunnen bedenken :-s

Thanks voor de tip.
 
Ward van der Put
Moderator

Ward van der Put

27/01/2014 15:45:47
Quote Anchor link
Ik denk dat je de RecursiveDirectoryIterator het beste, zoals veel SPL-onderdelen, alleen kunt gebruiken als generiek prototype waarmee je zelf iets specifieks bouwt. Bij veel iteraties van een pad mag er ondertussen gerust wat veranderen, bij enkele andere soms juist per se niet. Vandaar dat ik eerder zei: hangt ervan af hoe je het zelf implementeert.
 
Ozzie PHP

Ozzie PHP

27/01/2014 15:48:28
Quote Anchor link
Ik gebruik het om een array te verkrijgen van een directory waarin alle subdirectories en bestanden staan. Is dat wat je bedoelt? Ik gebruik het bijvoorbeeld om een directory leeg te maken. Maar ik vroeg me dus af of als ik aan het leegmaken ben en er wordt ondertussen een bestand bij geplaatst, of dit bestand dan ook nog wordt verwijderd. Maar ik denk eigenlijk van niet, omdat het geen onderdeel is van de iterator/array.
 
Wouter J

Wouter J

27/01/2014 16:16:37
Quote Anchor link
Test:
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
<?php

$path
= __DIR__.'/fixtures'; // base path

// remove all files in the dir

foreach (glob($path.'/*') as $f) unlink($f);

// add 3 files: file1, file2 and file3
for ($i = 0; ++$i < 4; file_put_contents($path.'/file'.$i, ''));

// create recursive directory iterator
$dirIterator = new \RecursiveDirectoryIterator($path);
// make a nice tree for me
$treeIterator = new \RecursiveTreeIterator($dirIterator);

// walk through the recursive directory iterator
foreach ($treeIterator as $dir) {
    // echo the tree element
    echo $treeIterator->getPrefix().substr($treeIterator->getEntry(), strlen($path) + 1).$treeIterator->getPostfix(), PHP_EOL;

    // create a new file, is the directory lazy loaded?
    file_put_contents($path.'/file'.uniqid().'.txt', '');
}

?>


Output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
|-file1
|-file2
\-file3


Conclusie:
(Recursive)DirectoryIterator is niet real time.
 
Ozzie PHP

Ozzie PHP

27/01/2014 16:20:53
Quote Anchor link
Dankjewel Wouter!

Wat is preces een RecursiveTreeIterator?

Als ik de inhoud van een dir wil hebben gebruik ik dit:

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

Wat is het verschil?
 
Wouter J

Wouter J

27/01/2014 16:40:40
Quote Anchor link
Ooit van PHP.net gehoord?
 
Ozzie PHP

Ozzie PHP

27/01/2014 16:48:54
Quote Anchor link
yup... ik werd er alleen niet veel wijzer van... en geen vragen stellen waar je het antwoord al op weet ;)
 
Wouter J

Wouter J

27/01/2014 16:54:01
Quote Anchor link
RecursiveIteratorIterator - Can be used to iterate through recursive iterators.
(vrij_ Vertaald: Biedt een interface om over RecursiveIterators te itereren

RecursiveTreeIterator - Allows iterating over a RecursiveIterator to generate an ASCII graphic tree.
(vrij) Vertaald: Maakt het mogelijk om over een RecursiveIterator te itereren om zo een ASCII boom afbeelding te maken

Kortom: De RecursiveTreeIterator heeft een specifiek doel, het maken van een ASCII tree (zie ook de method die ik aan roep in de foreach), de RecursiveIteratorIterator is de meest algemene recursieve IteratorIterator.
Zoals je ook kan zien is de RecursiveTreeIterator niks anders dan een extensie van de RecursiveIteratorIterator.
 
Ozzie PHP

Ozzie PHP

27/01/2014 17:00:28
Quote Anchor link
Thanks voor de uitleg Wouter, ik snap alleen niet wat er wordt bedoeld met een ASCII graphic tree. Wordt er dan een "tekening" gegenereerd? :-s Wat moet ik me er bij voorstellen?
 
Wouter J

Wouter J

27/01/2014 17:04:37
Quote Anchor link
Zie je mijn output? Dat is een ASCII graphic tree.

En daarnaast eerste hit op google, die andere site die je wel moet kennen, (anscii graphic tree) resulteert in een andere ASCII tree: http://stackoverflow.com/questions/1581559/ascii-library-for-creating-pretty-directory-trees
 
Ozzie PHP

Ozzie PHP

27/01/2014 17:09:11
Quote Anchor link
Ah oké. Ik kreeg in 1e instantie heel andere tekeningetjes :) (gebruik ook een andere zoekmachine)
Wel apart dat die iterator kan "tekenen". Of ik het ooit nodig heb, geen idee. Maar nu weet ik in ieder geval dat het kan.
 



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.