socialgekon.com
  • Tärkein
  • Muu
  • Web-Käyttöliittymä
  • Työn Tulevaisuus
  • Suunnittelu
Web-Käyttöliittymä

RAD-kehyksen tekniset sisäosat ... PHP-kehittäjänä Nookun kanssa

Jokaisella on oma joukko työkaluja. Kuten a PHP-kehittäjä , yksi suosikeistani on Nooku-niminen Rapid Application Development Framework. Sanojen mukaan kehitysryhmä : 'Nooku on pikemminkin web-kehitystyökalu kuin kehys'.

Jos et ole perehtynyt siihen, ole Katso . Se on avoimen lähdekoodin projekti, joka käyttää paljon teollisuuden hyväksymiä suunnittelumalleja tuottamaan erittäin komponentoituja sovelluksia, jotka ovat helposti laajennettavissa ja uudelleenkäytettäviä (alun perin yhden johtaa Joomla! kehittäjät ). Nooku tarjoaa sinulle alusta alkaen paljon nopeita sovelluskehitystyökaluja hankkeita irti maasta nopeammin. Pieni, mutta vahva näyte:

  • MVC: n oletusarvoinen toteutus, jossa sinun tarvitsee vain kirjoittaa asettelu (tämä kiinnitti minut)
  • HMVC saatavuus heti
  • Tuki erilaisille lähtömuodoille, kuten JSON ja XML, kaikille tiedoillesi (ts. Paljasta sovellusliittymäsi muutamassa minuutissa)
  • Oletusvalvonta- ja käyttöliittymätoteutukset

Nookun ytimessä on 'Composition over Inheritance' -periaate (itse asiassa se on ensimmäinen käsite Nooku-esittelysivulla. Yhdellä rivillä: sinun tulisi pyrkiä säveltämään (tai lisäämään) useiden objektien toiminnallisuus luomaan joitain eräänlainen yhdistelmäobjekti sen sijaan, että luotettaisiin alaluokkiin.



Visualisointi perintöperiaatteesta PHP: n nopean sovelluskehityksen (RAD) avulla.

Tämän periaatteen avulla voit kirjoittaa vähemmän koodia ja johtaa usein melko tyylikkäisiin ratkaisuihin. Joten miten sitä mainostetaan? No, kooditasolla parhaat esimerkit saadaan Mixinsin ja resurssi- / palvelutunnisteiden avulla. Katsotaanpa.

Mixin

Ennen PHP 5.4: ää kielellä ei ollut käsitystä Piirteet . Nämä ovat luokan kaltaisia ​​rakenteita, jotka objektin käytettäessä tarjoavat jonkinlaisen toiminnallisuuden (samanlainen kuin moniperintö). Nooku on ratkaissut tämän ongelman vuosien ajan (PHP 5.2: sta lähtien) Sekoita joukkoon .

Mixin antaa sinun paitsi sommitella objekteja yhdessä, myös lisätä kunkin sekoitetun objektin menetelmät yhdistetyn objektin käyttöliittymään. Sekoitusta käyttävä esine näyttää 'periävän' sekoitetun kohteen menetelmissä.

/** * Mixin an object * * When using mixin(), the calling object inherits the methods of the mixed * in objects, in a LIFO order. * * @param KMixinInterface $object An object that implements KMinxInterface * @return KObject */ public function mixin(KMixinInterface $object) { $methods = $object->getMixableMethods($this); foreach($methods as $method) { $this->_mixed_methods[$method] = $object; } // Set the mixer $object->setMixer($this); return $this; }

Lähes kaikilla Nookun kohteilla on tämä kyky, koska ne laajentavat KObject-perusluokan, joka määritti Sekoita joukkoon menetelmä.

Nookun ohjainarkkitehtuurin pääluokat ovat myös KObjectin jälkeläisiä. Abstrakti ohjain on KControllerAbstract-luokka ja tarkastuksen avulla voit nähdä, että se hyödyntää sekoituskykyä heti. Aina kun luodaan tämän luokan ilmentymä, KMixinCommand- ja KMixinBehavior-toiminnot lisätään välittömästi sen käyttöliittymään. Näin ollen jokainen Nookun ohjain koostuu komentoketju- ja käyttäytymishallintatoiminnoista vastaavien objektien kautta.

Miksi K kaikkien luokkien nimien edessä? Nookun pääkirjasto on nimeltään 'Koowa'.

Palataan Nooku-ohjaimeen: KMixinBehavior-luokka pitää sisällään kaikki palat, jotta KControllerAbstract antaa mahdollisuuden ladata erityisiä Käyttäytyminen ajon aikana. Käyttäytymisstrategiat ovat luokkia, jotka kuvaavat prosessia tai logiikkaa, joka voidaan erottaa toisista luokista ja käyttää niitä (esim. Muokattava, järjestettävissä). KMixinBehavior on melko yksinkertainen ja sillä on vain neljä tapaa: getBehavior, hasBehavior, addBehavior ja getBehaviors. Ja se on kaikki mitä tarvitsemme antaa esineelle kyvyn käsitellä ja kapseloida erilaisia ​​käyttäytymisstrategioita.

Vastaavasti KMixinCommandilla on vain kolme tapaa: getCommandContext, getCommandChain, setCommandChain. Jos et ole arvannut, nämä kolme menetelmää tarjoavat KControllerAbstractille mahdollisuuden toteuttaa komentoketju, mutta antaa sen tehdä sen ajon aikana.

Voit ajatella tätä sekoitusta yksinkertaisena aritmeettisena lisäyksenä:

Kuva Nookusta

Antaa meille käyttöliittymän, joka näyttää tältä: 

Täten tuloksena oleva käyttöliittymä näyttää tässä RAD-kehyksessä.

Määritelmän mukaan abstraktit luokat on tarkoitettu laajennettaviksi, joten perintötaikuuden avulla kaikki objektit, jotka ovat lapsia, tai KControllerAbstractin esiintymät saavat myös kyvyn lisätä käyttäytymistä ja komentoketjua ajon aikana.

Kuulostaa siistiltä. Mutta mitä se itse asiassa tarkoittaa? Lyhyesti sanottuna Nooku tarjoaa komponentoituja toimintoja; toisin sanoen Nookun avulla voit moduloida toimintojasi ja sommitella toiminnot moduulien välillä ajon aikana.

Nämä kaksi esimerkkiä osoittavat koostumuksen. Ne paljastavat myös Nooku RAD -kehyksen tuen jatkokoostumukselle sen ytimessä. Tämä on tärkeä etu. Edellä KControllerAbstractiin lisätyt menetelmät tukevat 'Strategian suunnittelumallia' antamalla kehittäjille työkalut kapseloida mitä vaihtelee ennen kuin yksi koodirivi on kirjoitettu. Se, että mixin () -menetelmä on osa jokaista KObject-laajennusta, tarkoittaa, että voit helposti määrittää ja lisätä muita käyttäytymishallintarajapintoja useimpiin kohteisiin ajon aikana.

Palvelu- ja resurssitunnisteet ja paikannuslaitteet: Irrota luokan nimi objektista

Nookun palvelu- ja resurssitunnisteet ja paikannuslaitteet tarjoavat myös voimakasta tukea huolenaiheiden erottamiseen.

Katsotaan jälleen KObjectia, mutta myös KServicea. Voimme käsitellä suurinta osaa Nookussa palveluista tai resursseista ja sellaisenaan välittää ja kuulustella niitä täsmälleen samalla tavalla.

Ajattele palvelua jotain, josta saat resurssin. Kaikki palvelut ovat resursseja, mutta kaikki resurssit eivät ole palveluita

Kun menet ruokakauppaan ja ostat tuotteen, ajattele kauppaa palveluna, eli kokoelmana tuotteita, jotka voit B rivikivi; ja tuote resurssina, eli yksi tuote / ratkaisulogiikka, joka voi olla:


  • tarkasteli erityisesti ( R ead) (esim. katsomalla tomaattikeittokannua)
  • muutti kaupassa ( ON (esim. siirrä keitto tuotantokäytävään)
  • lisätään tai poistetaan kaupan varastosta ( TO dd ja D lisää esim. uudenlainen keitto ja päästä eroon tomaatti)

Ottaen tämän esimerkin vielä pidemmälle, kuvittele, että ruokakaupassa on franchising-osasto ja haluat olla liiketoimintaa. Tässä tilanteessa palvelu on franchising-osasto ja resurssi on ostamasi ruokakauppa. Se on hyvin kontekstuaalinen luokittelu. Kokonaisuutena tämä tunnetaan nimellä LEIVÄ toimintamalli (Näet nämä kaikki edustettuna KControllerService ja KControllerResource välillä, jotka on valmiina merkinnällä ‘_action’, ts. _actionRead ()).

Malli voi olla palvelu, taulukko-objekti voidaan ajatella palveluna, tietty MVC-kolmikko on instantioitu resurssina tai palveluna, kun taas tietty palvelun kyselystä saatu tietue voidaan ajatella resurssina.

Jokainen Nookun kohde on esineistä koostuva koostumus, koska jokainen niistä sisältää viittauksen koko sovelluksen välittömiin palveluihin palvelukontissa ja menetelmän päästä palveluihin nimeltä getService (). KObject :: getService () -menetelmä vaatii vain, että välitämme kelvollisen resurssitunnisteen ja se palauttaa välittömän palvelun käyttövalmiiksi.

PHP: n nopeassa sovelluskehityksessä resurssitunnisteet tarjoavat meille tehokkaan tavan irrottaa objektin ilmentyminen sen luokan nimestä ja tarjota siten aliaksia tälle tunnistukselle. Tällä on merkittäviä vaikutuksia sovelluksen ylläpidettävyyteen. Aliaksen avulla kehittäjä voi muuttaa kaikkien objektien käyttämää luokkaa, joka on ilmentynyt tietyllä tunnisteella, lisäämällä yksi koodirivi KService :: addAlias ​​(): lla.

Esimerkki meille tunnetusta resurssitunnisteesta on URI tai Uniform Resource Identifier:

Esimerkin resurssitunnisteesta tässä Nooku RAD -kehysoppaassa.

Nämä ovat kaikki tarvittavat tiedot, jotta KService löytää sopivan luokan ja ladata sen. Nämä kappaleet sopivat yhteen Nookun luokkien nimeämis- ja sijoittamiskäytäntöjen kanssa, jotka tarjoavat sijoittelun ja välitön ennakoitavuus. Yläpuolelta tuleva tunniste (com: //site/user.database.table.user) yrittää ladata tiedoston /components/com_user/databases/tables/user.php, jolla on luokan nimi ComUserDatabaseTableUser. Muuten, jos tiedostoa ei ole olemassa, kehys antaa sinulle oletustaulukko-objektin ja rakentaa sen tietokannan nimeämisen ja id-skeeman käytäntöjen perusteella (tämä kiinnitti minut vielä). Kuten aiemmin mainittiin, KService antaa sinun myös asettaa aliaksia tunnisteillesi. Käyttämällä KService::setAlias('maindbaseadapter','com://admin/default.database.adapter.mysqli'); avulla voimme ladata db-objektin KService::getService(‘maindbaseadapter’): lla.

Tämä antaa meille irrotuksen, josta puhuimme, ja tarjoaa huomattavan edun sovellusten ylläpidossa ja laajentamisessa. Voimme luoda tarvittaessa muita sovelluksia kuin sivustoja ja järjestelmänvalvojia, ja tässä kuvattujen tunnisteiden avulla voimme käyttää muissa sovelluksissa olevia palveluita helposti auttaaksemme ratkaisuitamme vastaamaan heidän vaatimuksiinsa. Tämä on jälleen yksi esimerkki siitä, kuinka Nooku tarjoaa PHP- ja RAD-kehittäjille ja tiimeille tukea paitsi yhden luokan objektien, myös kokonaisen palvelun ja sovellusten koostumukselle ... ilmaiseksi.

Yhteenvetona

Perintöosuus ytimessä; älykkäät, jo olemassa olevat kokoonpanot ja rakenteet, jotka tukevat muita amalgaameja ja ilmaisen palvelukeskeisen arkkitehtuurin, jossa on kuvatut tunnisteet, Nooku tarjoaa tehokkaan RAD-kehyksen, jolla on merkittävä etumatka vertaisverkkoonsa nähden PHP-kehitys työkalut.

Mielen silmä - katsaus datan visualisointipsykologiaan

Ux-Suunnittelu

Mielen silmä - katsaus datan visualisointipsykologiaan
Tekoälyn nykyisyys ja tulevaisuus suunnittelussa (infografiikan kanssa)

Tekoälyn nykyisyys ja tulevaisuus suunnittelussa (infografiikan kanssa)

Ux-Suunnittelu

Suosittu Viestiä
Elixir-ohjelmointikielen käytön aloittaminen
Elixir-ohjelmointikielen käytön aloittaminen
Heuristinen analyysi UX: lle - Kuinka suorittaa käytettävyyden arviointi
Heuristinen analyysi UX: lle - Kuinka suorittaa käytettävyyden arviointi
Tietorakenteen periaatteet mobiililaitteille (infografiikan kanssa)
Tietorakenteen periaatteet mobiililaitteille (infografiikan kanssa)
Reagoiva suunnittelu ei riitä, tarvitsemme reagoivaa suorituskykyä
Reagoiva suunnittelu ei riitä, tarvitsemme reagoivaa suorituskykyä
Google-kuvat ja tietosuoja: Näin pidät valokuvasi turvassa
Google-kuvat ja tietosuoja: Näin pidät valokuvasi turvassa
 
Kuinka käyttää Google Kuvia iPhonessa kuvien varmuuskopioimiseen, tallentamiseen ja jakamiseen
Kuinka käyttää Google Kuvia iPhonessa kuvien varmuuskopioimiseen, tallentamiseen ja jakamiseen
Ansiosopimukset: Rakenteet neuvottelujen kuolleiden pisteiden rikkomiseksi
Ansiosopimukset: Rakenteet neuvottelujen kuolleiden pisteiden rikkomiseksi
Koneoppimisen numerotunnistus - nollasta sovellukseen
Koneoppimisen numerotunnistus - nollasta sovellukseen
Hinta on oikea - yleiskatsaus hinnoittelustrategiaan kuluttajayrityksille
Hinta on oikea - yleiskatsaus hinnoittelustrategiaan kuluttajayrityksille
Kuinka lisätä musiikkia Instagram-tarinaan tarroilla tai ilman
Kuinka lisätä musiikkia Instagram-tarinaan tarroilla tai ilman
Luokat
Tietojenkäsittely Ja TietokannatiOS-vinkkejäWeb-KäyttöliittymäTrenditProjektinhallintaKetteräAmmuntaOngelmien karttoittaminenElämäntapaTaustaa

© 2023 | Kaikki Oikeudet Pidätetään

socialgekon.com