directory iterator real time?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Starter/junior PHP developer

Functie Momenteel zijn ze op zoek naar een junior PHP developer om het team te versterken. Als back-end developer bouw je de enterprise software die hun bedrijf helpt bij haar primaire processen. Afhankelijk van de omvang van het project werk je in een klein team aan een project. Ze hebben dagelijkse stand-ups en elke twee weken een scrumsessie, begeleid door de Scrum Master, waar je je ideeën kunt presenteren en samen met de Product Owner kunt werken aan het beste product. Ze vertrouwen enorm op hun eigen bedrijfssoftware. Dit geeft hun een groot voordeel ten opzichte van hun concurrentie. Zo

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Full stack developer

Functie Binnen een ontzettend stimulerende werkomgeving kom jij te werken in een software team van 14 developers. Met ontzettend stimulerend bedoel ik een modern pand, wat voorzien is van alle nodige soft- en hardware, zodat jij jouw werk goed kan uitvoeren. Daarnaast zitten ze in een bos, waardoor je in een groene omgeving rustig kunt werken. Het team bestaat uit front end, back end en full stack developers. Jij krijgt dus de keuze hier waar jij jezelf het liefst op zou richten, maar de voorkeur gaat uit naar back end. Er wordt hier Scrum (agile) gewerkt in multidisciplinaire teams met

Bekijk vacature »

Front End Ontwikkelaar (React)

In het kort Als front end developer ga je aan de slag met maatwerkprojecten voor onze klanten. Denk bijvoorbeeld aan het toevoegen van een machine aan een database of het corrigeren van formulieren voor ingestuurde orders. Voorbeeld van zo’n project is Smart Link. De projecten waar je op ingezet kunt worden liggen binnen het technische domein waar jij als front end developer een grote rol speelt om samen met je back end collega’s de juiste oplossingen te leveren. please note that this particular role requires fluent Dutch language skills. Dit vind je leuk om te doen Het omzetten van designs

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

Bekijk vacature »

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Medior/senior front end developer React Sportsoftw

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van onze stack; Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

Junior / Medior C# .NET ontwikkelaar in Brabants t

Bedrijfsomschrijving Ben jij een gepassioneerde C# .NET ontwikkelaar met een voorliefde voor hardware? Dan is dit de perfecte kans voor jou! Bij ons bedrijf krijg je de kans om deel uit te maken van een team van sociale en enthousiaste techneuten die er elke dag naar streven om onze eigen ontwikkelde software nog beter te maken. Het team van ongeveer 10 team medewerkers maakt zich hard om de interne processen gestroomlijnd te laten verlopen. Functieomschrijving Als lid van ons hechte en behulpzame team word je betrokken bij diverse projecten. Daarbij krijg je te maken met data-analyses, content en de logistieke

Bekijk vacature »

Front-end PHP Developer

Dit ga je doen Bouwen van de frontend van een nieuwe applicaties; Verbeteren van de user experience; Opstellen van een style guide; Schakelen met collega developers over de te bouwen oplossing; Je speelt een belangrijke rol in het neerzetten van het nieuwe systeem; Werken met o.a. Symfony 6, API Platform, Twig, Javascript, Redis Automatiseren van processen; Koppelen van verschillende functionaliteiten; Unit tests, integration tests, end-to-end tests; In de toekomst ga je nog werken aan andere projecten. Hier ga je werken Voor onze vaste opdrachtgever in de regio Breda zijn wij op zoek naar een Frontend Developer. Het betreft een organisatie

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

27/11/2024 17:11:28
 
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.