Navigation class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

Software developer

Werkzaamheden voor jou als software developer Voor een goede relatie in de regio Zwolle (meerdere locaties) zoeken wij een software developer die betrokken is bij de ontwikkelcyclus en verantwoordelijk is voor het testen en keuren van nieuwe en geoptimaliseerde software. In deze functie ben je in de implementatiefase de persoon die risico's beoordeelt en intern oplossingen aanbrengt om risico's te verkleinen. Binnen het ontwikkelteam van de software ben je een belangrijke schakel waar je intensief meewerkt met scrum. Het voorkomen van bugs in de programma's en het bevorderen van gebruiksvriendelijkheid voor eindklanten zijn voor jou een uitdaging en geeft voldoening

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 »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

Bekijk vacature »

Back end developer PHP, Laravel

Functie Jij komt te werken in ons webdevelopment team, wat bestaat uit 8 ervaren collega’s. Hiernaast hebben wij nog een team van 2 ontwikkelaars die aan native applicaties werken. Bij ons zijn er korte lijntjes en er hangt een gezellige informele werksfeer. Maar het belangrijkste is natuurlijk dat je aan geweldige applicaties zult gaan werken! Wij willen als organisatie niet te groot worden, we willen gewoon toffe dingen maken. Onze techstack bestaat momenteel uit: PHP, Laravel, Javascript, Typescript, Git, MySQL, Java, Kotlin, Xamarin. Samen met ons ga jij zorgen dat we puik werk leveren! Waarbij je bij elke fase in

Bekijk vacature »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

Front-end developer Supply Chain Angular, ReactJS,

Functie Het development team bestaat momenteel uit 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creëren 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 meedenken over strategie en design. Hierin krijg je veel vrijheid om de functie naar eigen inzicht in te vullen en te pionieren. Alle data die wordt gebruikt is zichtbaar in een webapplicatie, geschreven in Angular en React. Momenteel zijn ze bezig om de dashboards anders vorm te geven en de

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Front-end Developer (HTML/CSS, Angular/React/Vue,

Functie Je zal aan de slag gaan in een klein, hecht team met front-end development experts die de ambitie delen mooi werk te leveren. Samen met hen zal je werken aan het gebruiksvriendelijk en interactief maken van complexe webapplicaties, websites en mobile apps. Je levert klanten wat ze nodig hebben terwijl je actief aan jezelf blijft werken met de ondersteuning vanuit je werkplek. Talen als Javascript programmeer jij vloeiend en je hebt kennis van frameworks als React en Angular. Je zou je het liefst nog veel meer ontwikkelen in verschillende front-end talen. Deze kennis deel je graag met je collega’s,

Bekijk vacature »

PHP back-end developer gezocht!

Functie Werk je liever zonder druk en keiharde deadlines maar met de focus op kwaliteit? Dan kom je hier op de juiste plek terecht! In Het team bestaat momenteel uit 12 developers, hiernaast werken er collega’s van front-end, UX maar ook marketing/sales en support. In iedere sprint ontwikkel je samen functionaliteiten met als uitdaging om de klanten de beste gebruikerservaring te bieden. Ze bieden een werkplek waar je jezelf kunt blijven ontwikkelen, en mee te werken aan zowel bestaande als nieuwe mogelijkheden. Eisen • HBO werk- en denkniveau (ze kijken niet naar een papiertje) • Je denkt graag mee over

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 Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Pagina: 1 2 volgende »

Reshad F

Reshad F

04/11/2012 15:49:22
Quote Anchor link
Hello OOP specialisten vooral :)

Ik ben na lange tijd maar weer is achter de PHP classes oefeningen gedoken.

Voor een nieuwe oefening dacht ik een navigatie menu te maken d.m.v. een Navigation class. Waar ik nu precies naar benieuwd ben, wat moet er zoal in en waar moet ik rekening mee houden. zijn er dingen die minimaal in een navigaton class moeten komen? ( denk hierbij aan de interface class ) etc...

alle tips zijn welkom :)

Offtopic:

ik post de vraag ook op andere fora dus wees niet verrast als je het tegenkomt, uiteraard zal ik het uiteindelijke resultaat overal neerzetten.
Gewijzigd op 04/11/2012 17:57:29 door Reshad F
 
PHP hulp

PHP hulp

26/04/2024 17:46:40
 
Wouter J

Wouter J

04/11/2012 15:54:08
Quote Anchor link
Ik zou voorstellen dat jij eerst gaat nadenken. Waar kom jij op? Het moet immers jij zijn die het gaat leren, wij weten het al.
 
Reshad F

Reshad F

04/11/2012 16:02:31
Quote Anchor link
oke, beginnend met de Interface zou ik zeggen

navigationInterface

setMenuItem(); //Menus opgeven vb Home, contact etc etc
getMenuItem(); // return de Menu items
display(); //de navigationMenu dispatchen naar het scherm

en aan de hand hiervan een navigation class bouwen
Gewijzigd op 04/11/2012 16:23:33 door Reshad F
 
Wouter J

Wouter J

04/11/2012 16:05:19
Quote Anchor link
Niet de manier zoals ik het zou doen. Kijk eens naar het menu van bijvoorbeeld deze site. Welke fysieke objecten kom je tegen en wat hebben die voor eigenschappen?

EDIT: Beetje verkeerd begrepen, als dit alleen om het menu gaat kan dit er mee door. Je kan ook alles als een element zien.
Maar die posities horen helemaal niet in PHP thuis, dat doe je maar lekker client-side... :)
Gewijzigd op 04/11/2012 16:06:38 door Wouter J
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/11/2012 16:05:46
Quote Anchor link
Ik denk dan vooral aan een object (class) menuItem met een aantal properties zoals href,name,enabled,active
en dan een object menu met een array als property. in deze array kunnen menuItems of submenu-objecten staan.
dan uiteraard de nodige setters/getters en een output functie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
array menu ->     item('home')
            array submenu ->item('subitem1')
                        item('subitem2')
                        item('subitem3')
                item('contact')
                item('about')

zoiets dus
Gewijzigd op 04/11/2012 16:07:51 door Frank Nietbelangrijk
 
Reshad F

Reshad F

04/11/2012 16:17:01
Quote Anchor link
@WouterJ bedoel je daarmee de links met de bijbehorende attributen?
 
Wouter J

Wouter J

04/11/2012 16:19:50
Quote Anchor link
Als je een menu hebt zie je dan alleen links? Nee, je ziet menu items met sub items deze sub items hebben weer link items inzich die weer een tekst inzich hebben vervolgens zijn deze items weer geïntegreerd in een ul item die het menu maakt.

Zie je een pattern ontstaan in de tekst hierboven? Wat kunnen die items en wat is allemaal een item? Heb je een mooiere naam voor een item? Is het een idee om hier een interface van te maken?

Tevens kun je ook wat verder denken: Je kunt het hele principe toepassen voor een complete HTML pagina.
Gewijzigd op 04/11/2012 16:20:32 door Wouter J
 
Eddy E

Eddy E

04/11/2012 17:06:31
Quote Anchor link
Maar als je het zo in PHP gooit (dus statisch), waarom niet gewoon direct in (statische) html?
 
Reshad F

Reshad F

04/11/2012 17:23:14
Quote Anchor link
oke ik heb de interface gemaakt en de class en heb het getest en het werkt maar of het echt OO is weet ik niet zeker maar volgens mij zit ik in ieder geval in de goede richting. een ding waar ik niet helemaal uitkom en waar ik graag hulp bij zou kunnen gebruiken is om alle menuitems in een array te zetten..

dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$menu
->setMenuItem("home", "contact", "menu", "menu2");
?>


en dat deze dus in een array door alle waarde heen loopt in mijn class

hetgeen wat ik nu heb is het volgende:

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
33
34
35
36
37
38
39
40
41
42
43
<?php
class Navigation implements navigationInterface {

    public $menu = null;
    public $name = null;
    public $klasse = null;
    
    public function __construct($name, $klasse) {

        $this->name = $name;
        $this->klasse = $klasse;

    }


    public function getName() {
        return $this->name;
    }


    public function getClass() {
        return $this->klasse;
    }


    public function setMenuItem($items) {

        $this->menuItem = $items;

    }


    public function getMenuItem() {
        return $this->menuItem;
    }


    public function display() {

        $menu = '<nav class="' . $this->getName() . '">';
        $menu .= '<li><a class="' . $this->getClass() . '" href="index.php?page=' . $this->getMenuItem() . '.php">' . $this->getMenuItem() . '</a></li>';
        $menu .= '</nav>';

        return $menu;

    }
}

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
interface navigationInterface {
    
    public function setMenuItem($items);
    public function getMenuItem();
    public function display();

}

?>
Gewijzigd op 04/11/2012 17:29:39 door Reshad F
 
Wouter J

Wouter J

04/11/2012 17:25:19
Quote Anchor link
Reshad, deze tip heb ik je al 100 keer gegeven, maar denk niet aan scripten. Denk aan objecten durf die laptop eens dicht te klappen/die computer eens uit te zetten en alleen met een potlood en papier voor je neus te zitten.

Want terwijl we nog helemaal niet klaar zijn met onze OO structuur heb jij al de code af!
 
Reshad F

Reshad F

04/11/2012 17:42:24
Quote Anchor link
Wouter ik heb mijn structuur al af voor hetgeen ik in mijn hoofd heb/had hierop heb ik deze code gemaakt.

zie

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
+-----------------------------+
 |Interface navigationInterface|
 |-----------------------------|
 | setMenuItem($items);        |
 | getMenuItem();              |
 | display();                  |
 +-----------------------------+
 +-------------------+
 |class Navigation   |
 |-------------------|
 |+menu              |
 |+name              |
 |+klasse            |
 +-------------------+
 |getName();         |
 |getClass();        |
 |setMenuItem(items);|
 |getMenuItem();     |
 |display();         |
 +-------------------+


Maar wat mis ik verder volgens jou? ( en in antwoord op jou voorlaatste reactie: ik wil het eerst werkend hebben met gewone menu zonder subitems) omdat ik de class nu nog zo klein en schoon mogelijk wil houden alleen maar om te oefenen. Uiteraard is het later nog uit te breiden.
 
Wouter J

Wouter J

04/11/2012 17:46:44
Quote Anchor link
Quote:
ik wil het eerst werkend hebben met gewone menu zonder subitems) omdat ik de class nu nog zo klein en schoon mogelijk wil houden alleen maar om te oefenen. Uiteraard is het later nog uit te breiden.

Als je OO bouwt moet je het altijd bouwen met het oog op de toekomst: Wat kan er in de toekomst veranderen en hoe maak ik het zo simpel mogelijk om die verandering toe te passen. Daarom moet je nu al gaan nadenken hoe het straks wordt.

Wat hier mis is dat de Navigatie klasse nu meerdere taken heeft => mag niet in OO. Vervolgens ga je hier maar uit van 1 menu item, richt je je blik niet op de toekomst en is je code veel te gespecialiseerd voor deze applicatie i.p.v. als een component die in elke applicatie kan werken.
 
- Raoul -

- Raoul -

04/11/2012 17:52:02
Quote Anchor link
Ik zou een klasse maken, genaamd Navigation. Voor ieder menu item maak je dan iets als NavigationItem.
Klein opzetje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$nav
= new Navigation;
$nav_item = new Navigation_Item;
$nav_item->setLink('/home');
$nav_item->setText('Startpagina');

$nav->addItem($nav_item);

echo $nav->render();

?>
 
Reshad F

Reshad F

04/11/2012 17:54:40
Quote Anchor link
hmm welke dingen moeten er in deze klasse nog gescheiden worden volgens jou dan?

( het benoemen, geven van css class namen etc scheiden van het creëren van menu items? )


@Raoul

het volgende heb ik nu.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$menu
= new Navigation("Test", "mainmenu");

$menu->setMenuItem("home", "test");
echo $menu->display();

?>


en volgens mij denk ik nu wat WouterJ ook gelijk bedoelt, ( zie commentaar op WouterJ )
 
Wouter J

Wouter J

04/11/2012 17:59:15
Quote Anchor link
Ik zou gewoon alles groeperen als een Element met een ElementInterface die geldt voor elk HTML element die je maar kunt bedenken. Die heeft methoden als appendChild(child:ElementInterface) en setAttribute(name:string, value:string).

Je kunt dan een AnchorElement maken en een NavItem element. Elk NavItem kan via appendChild een nieuw NavItem bevatten, om zo subitems te maken, maar ook een Anchor element die vervolgens weer wat tekst kan bevatten of een nieuw element als een SpanElement.

Als laatst heb je dan een NavItem die de hele navigatie voorstelt en gebruik je een RendererInterface met daaronder HTMLRenderer en XMLRenderer of YamlRenderen of wat je maar wilt, die de uiteindelijke HTML code maakt.


Dit idee is gebaseerd op knpmenu, die ik vaak met het Symfony2 Framework (icm KnpMenuBundle) gebruik, maar dan nog wat verder gedacht.

Wat voorbeeldjes van dit idee: http://www.phphulp.nl/php/forum/topic/oop-forms/85477/#610520 en http://www.phphulp.nl/php/forum/topic/paginering-oop/84869/#605327
 
Reshad F

Reshad F

04/11/2012 18:31:10
Quote Anchor link
Het ziet er goed uit vooral pim's voorbeeldje wat ik wel snap ( kwa code ) en deels ook kwa werking.. maar de connectie met de appendChild enz zie ik er zo 1,2,3 niet in.
 
- Raoul -

- Raoul -

04/11/2012 18:45:44
Quote Anchor link
Reshad F op 04/11/2012 17:54:40:

@Raoul

het volgende heb ik nu.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$menu
= new Navigation("Test", "mainmenu");

$menu->setMenuItem("home", "test");
echo $menu->display();

?>


Ja dus? Dat is nog steeds niet correct OO. Alles is een object in OOP, onthoud dat altijd goed.
In dit geval is Navigation, een object, een zelfstandig werkwoord. Dat klopt al, maar, een menu-item, dat is ook een apart object.
->setMenuItem() is geen apart object maar een method in je Navigatie functie!!!

Omdat een menu-item ook nog steeds een apart object is, doe je het, zoals ik al zei, beter in een aparte class!!!
Gewijzigd op 04/11/2012 18:47:26 door - Raoul -
 
Jasper DS

Jasper DS

04/11/2012 19:12:56
Quote Anchor link
Ik ga ook even mijn gedacht posten als oefening. :)

Zou het er uiteindelijk niet zo uit moeten zien?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    $menu
= new Navigatie('...');
    $menuItem = new Item('...');
    $anotherItem = new Item('...');
    $menu->append($menuItem);
    $menu->append($anotherItem);
    echo $menu->display();

?>
 
Wouter J

Wouter J

04/11/2012 19:14:26
Quote Anchor link
Jasper, zo kan je het doen. Maar je kan nog wat verder erin gaan. Kijk maar eens naar het voorbeeld dat ik gaf (http://github.com/knplabs/knpmenu )
 
Reshad F

Reshad F

04/11/2012 19:53:57
Quote Anchor link
hmm @Raoul als ik deze twee nu wil scheiden. moet/kan ik dan gewoon de item methods in een andere class zetten en de class aanroepen in mijn navigation constructor?

en vervolgens in mijn display(); methode de methodes ervan ook aanroepen?

of is hier een andere manier voor..
 
Wouter J

Wouter J

04/11/2012 19:55:43
Quote Anchor link
Nee, Reshad je moet je invoegen zoals Jasper in zijn voorbeeld doet.

Offtopic:
Jammer dat je niks met mijn idee doet, maar goed ik respecteer je keuze.
 

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.