mysql => mysqli tai pdo?

Started by ioxo, 31.01.14 - klo:17:06

Previous topic - Next topic

ioxo

Moikka moi,

Tulipa jonkin näköisellä testiserverillä kokeiltua uusinta versiota ja huomasin, että mysql_connect & co functioista tuli aika paljon deprecated varoituksia. (Näitä ei tietystikkään näe, jos on "production" mode php:ssä päällä)

Tämä vain tiedoksi, että (lähi)tulevaisuudessa taitaa olla aika suuri päivitys noiden functioiden osalta. Itse yritin jo päivitellä noita mysqli muotoon, mutta homma tökkäsi siihen kun en enää pystynyt kirjautumaan sisään enkä oikein keksinyt mistä lähteä vikaa etsimään.

En osaa sanoa onko pdo_mysql parempi kuin mysqli?

Jos jotain kiinnostaa niin lisäsin githubin wikiin nginx esimerkki konffin.

-Juho

Ere Maijala

Moi,

kiitoksia huomiosta. Tämä on kyllä ollut jo vähän aikaa odottamassa, mutta pitäisi ehtiä tehdäkin. PDO:ssa ja mysqli:ssä lienee molemmissa omat hyvät puolensa, eikä olisi välttämättä kovin iso homma tukea molempia.

--Ere

ioxo

Tuosta tulikin mieleen kun testailin ja en päässyt jostain syystä kirjautumaan sisään, niin oiskohan tuhoon tuomittu ajatus, jos config-tiedostossa voisi määritellä tyyliin

define('production_mode', false);
define ('auto_login', true);

Tai jotain vastaavaa tyyliä, eli ei tarvitsisi puukotella session-määritteitä yms kun voisi pienellä config-säädöllä päästä sisään, jos haluaa kehitellä vaikka json-rss readeriä tms...

Tuota koodia kun aina välistä katselee, niin voishan se olla (tosiaan) helpompaa, jos olisi jokin frameworkki käytössä :). Kova työ vaihtaa alustaa kun pitäisi suht kaikki kirjoittaa alusta. Tosin tietokanta vaikuttaa aika toimivalta.

-Juho


Ere Maijala

Hiukan pelottavia tuollaiset asetukset.. Kuitenkin unohtuu päälle tuotannossa, ei siinä muuta. Juu, framework on kyllä edessä, ei tuo ole tuollaisena pidemmän päälle ylläpidettävä. Jonkin verran työtä siinä tulee toki olemaan, mutta osia hankalimmista jutuista (PDF:t, Finvoice, listojen toiminta ym.) voi kyllä hyödyntää.

--Ere

ioxo

:). Onhan noi hiukan kieltämättä pelottavia viritelmiä, riippuu vähän millä tavalla systeemejä rakentaa.  Itselläni on ainakin koneessa A testi käyttö versio/puukotusversio ja koneessa B tuotantoversio, jonka koodiin en ole koskenut.

Onko sulla Ere jo jossain lähtenyt käyntiin tuo frameworkillä varustettu versio?

Satunnaisia lisäyksiä/avustuksia saattaisin osaa tehdä...

Ere Maijala

Framework odottaa edelleen aikaansa. Kunhan tässä saisi ainakin yhden version valmiiksi, niin voisi ryhtyä pistämään hommaa palasiksi..

--Ere

Beluga

Saako ehdotella frameworkkeja? Mahtaisikohan Processwire toimia tässä tapauksessa: http://processwire.com/api/
Pirun selkeä systeemi ainakin, vaikka onkin sisällönhallintaan kallellaan. Foorumilla Laraveliä yms. käyttäneitä, jotka pitävät PW:tä kivempana. PW:ssä vahva suomiedustus.

Ere Maijala

Saa ehdotella, ja vielä muitakin vaihtoehtoja saa tarjota... Tässä kun voi valita ihan mitä vaan, mikä vain täyttää tietyt reunaehdot. :)

--Ere

Beluga

Ajattelin tässä vielä arvioida Processwiren sopivuutta.
PW seurailee PHP Framework Interop Groupin standardeja: http://processwire.com/about/roadmap/ (2.4 on juuri julkaistu).
PW ei sido mihinkään tiettyyn sivupohjasysteemiin, vaan voit käyttää ihan mitä vain.
Uusimmassa versiossa ylläpidon sivupohjat ovat moduuleita.
PW:n foorumi on täynnä avuliaita käyttäjiä.

Hyödyllisiä valmiita moduuleja:
CSV-tuonti
jQuery DataTables-pluginin helppo kutsuminen. Sen avulla voi tallentaa taulukoita mm. Excel-muodossa.
Wordpressin Hana Codea vastaava Hanna Code.
Kokonaisten sivustojen vienti/tuonti.

On myös olemassa MVC:n tyylisiä ratkaisuja projektien tekoon:
http://processwire.com/talk/topic/4892-an-almost-mvc-approach-to-using-templates/
http://processwire.com/talk/topic/4947-the-pw-mvc-project/
http://processwire.com/talk/topic/4562-module-spex-an-asset-and-template-management-module/

Ere Maijala

Vilkaisin ProcessWirea ja kuvittelen lukeneeni sen olevan erityisesti CMS-käyttöön. Toistaiseksi se ei ole noussut myöskään esille missään lukemassani artikkelissa PHP-frameworkeista.

--Ere

Beluga

#10
Quote from: Ere Maijala on 08.02.14 - klo:09:34
Vilkaisin ProcessWirea ja kuvittelen lukeneeni sen olevan erityisesti CMS-käyttöön. Toistaiseksi se ei ole noussut myöskään esille missään lukemassani artikkelissa PHP-frameworkeista.

Tässä hyödyllistä pohdintaa PW:n frameworkkiydestä:
http://processwire.com/talk/topic/3934-integrating-framework-elements-into-processwire/
http://processwire.com/talk/topic/2393-processwire-framework/#entry49424
http://processwire.com/talk/topic/3311-is-pw-a-framework/#entry32551

Viimeisestä linkistä:
QuoteTechnically CodeIgniter and CakePHP are also "pure PHP" and a framework simply gives you a way to get a headstart on development using pre-defined classes etc.

I think what you're really asking is if you can use it as a framework and just access its classes directly as with those framework and the answer is definitely yes, but there is no single correct way to work with it which is the beauty of it :)

In ProcessWire, to use it as a framework you would bootstrap it and use the API to get stuff done.

Esimerkki monimutkaisemmasta PW:llä toteutetusta sovelluksesta:
http://processwire.com/talk/topic/2920-web-application-intranet-office-suite/


Beluga

#12
Lisää pohdintaa:
http://harikt.com/blog/2014/01/09/frameworks-are-good/
http://philsturgeon.co.uk/blog/2014/01/the-framework-is-dead-long-live-the-framework
http://mavrck.com/blog/2013/01/ive-evaluated-php-frameworks-and-the-answer-is-laravel/
http://www.sitepoint.com/best-php-frameworks-2014/
http://crewow.com/Top-PHP-Frameworks-Collections.php
http://www.shift8creative.com/posts/view/php-5-framework-comparisons-bootstrap
http://creativeproject.wordpress.com/2013/07/14/8-awesome-php-frameworks-for-developers/
http://briananglin.me/2014/01/best-php-frameworks-2014/
http://www.reddit.com/r/PHP/comments/1cp48m/is_laravel_really_all_that_and_a_bag_of_chips/

Jos joku varma valinta pitäisi heittää, niin se olisi Laravel. Symfonyssa on korkea oppimiskynnys ja sen luoja sanookin:
Quotethink of Symfony as being a PHP middleware instead of a PHP framework and everything should click.
Laravel käyttää lähes kymmentä Symfonyn komponenttia, mutta abstrahoi ne helposti käytettäviksi. Laravelissa on myös laadukas dokumentaatio.

Tässä nykyistä ja tulevaa eri frameworkkien osalta:
http://wiki.laravel.io/Laravel_4 (nykyinen)
http://fuelphp.com/blogs/2013/08/2-0-an-update
http://samminds.com/2013/10/understanding-zend-framework-3-before-its-out/
Symfonyssa takaisinpäin yhteensopivuus rikkoontuu seuraavaksi versiossa 3, joka ei kuitenkaan ole edes horisontissa vielä.

Mikroframeworkki Silex on muuten Symfony-jengin luoma.

Symfonya kehittävä firma sai hiljattain aika mukavan investoinnin:
http://fabien.potencier.org/article/71/sensiolabs-raises-5-million-euros-to-boost-the-symfony-ecosystem
He palkkaavat 60 uutta työntekijää. Hyviä aikoja luvassa siis PHP-maailmalle ylipäätään.

Otetaan nyt tähän vielä Processwiren nimeen vannovan Matthew Schenkerin ajatuksia aiemmin linkkaamistani viestiketjuista:
QuoteComing from a CodeIgniter background (and more recently cake and Laravel), I often make comparisons between ProcessWire and frameworks.

The way I see it -- ProcessWire is a framework like CodeIgniter, but with several CMS elements added on to make common development tasks faster and easier. Beyond the crucial CMS elements, it's up to you how you actually want the system to behave and look. The syntax for querying the database and creating views is very "expressive" (as they like to say in the Laravel community), and the depth and combinations of your queries is wide open.

ProcessWire is really amazing. With that said, I do see some elements in CodeIgniter (and Laravel) that could be adopted by ProcessWire.

QuoteI have been impressed over and over again with how terrific the "framework" part of ProcessWire works. It reminds me of the best aspects of CodeIgniter and Laravel.  In fact, I would say that ProcessWire's syntax and methods are even more efficient than those frameworks.  Laravel in particular gets a huge boost from the developer community because of its "expressive" syntax.  I wish more of those people knew about ProcessWire!

Still, I do see particular libraries from other frameworks that I think would be nice to integrate into my ProcessWire sites.  Also, with ProcessWire possibly adopting Composer, this might open amazing opportunities.

QuoteThere are a lot of frameworks out there. How (and if) they are discussed affects their visibility and adoption. For example, I have spent time with Laravel, and I don't really see that it is generally better than Yii, CakePHP, or others. However, the buzz around Laravel is causing a rapid rise in its adoption within the development community.

ioxo

Hmmm, en muista mitä reunaehtoja on annettu, jos on :). Ja miten isoksi tuon laskutus ohjelman on tarkoitus skaalautua?

Perus toiminta on mielestäni nykyisellään suht hyvä, monet asiat voisi "moduloida" ja sen jälkeen vois tuoda moduuleina systeemiin, esim. pdf-tulostus (joka sisältäisi esim. laskun ulkoasumuokkaimen, laskun tulostuksen), varasto-moduuli, joka käsittelee varastoa ja tuotteita, yhtestietojen moduuli, joka mahdollistaisi yhteystietojen pläräyksen puhelimella, massapostitus/markkinointi, tuotteen skannaus viivakoodilla jne. Parempi ohjelmistoarkkitehtisuunnittelija tietää varmaanki missä vaiheessa mikäkin kannattaa luoda moduulina, mutta tässä pieniä ajatuksia.

Itse ydinhän vois olla periaatteessa sisälle kirjautuminen ja yksinkertaisen laskun teko(, ilman tietokanta vaatimuksia). Moduulien avulla eritasoiset koodaajat pystyisi toteuttamaan eri "Hello world"-komponentteja omien taitojen mukaan.

Suosittelen itse frameworkkina jotain, joka on tunnettu. Tällöin mahdollistaa parhaiten ohjelman kehittymisen. Itse osaan aika vähän ylipäätään ohjelmoida, mutta jonkin verran tajutakseen ideaa (yleensä). En näkisi kauhean fiksuksi kehittää ohjelmaa jonkin cms-ohjelmiston (frameworkin) päälle. Tuohan olisi melkein yhtä pahaa puukotusta kuin wordpressillä toteuttais laskutus-ohjelmaa. Toinen hyvä puoli tunnetussa frameworkissa on se, että frameworkin kehitys ei lopu. Ikävä jos ollaan kehitetty hyvä laskutusohjelma ja pari tärkeää lisäominaisuutta löytyisi toisista framworkeista, mutta alustaksi on valittu jokin marginaali fw ja sitte kirjotellaan taas uudestaan koko ohjelmaa kun muutamat fw ominaisuudet onki aika työläitä toteuttaa...

Php-maailmasta löytyy hyviä frameworkkejä kuten esim. yii, symphony, codeigniter. Omasta mielestä codeigniter oli ehkä noista helpoin mitä joskus toteuttelin sivuja frameworkillä. Yii:n oppii. Symphonystä en niin tiedä :)

Python-maailmasta löytyy ainakin flask, joka vaikuttaa erittäin simppeliltä. Django voi olla aika raskas(?)

Javascriptillä (node.js) löytyy expressjs, joka on vissiin suosittu, mutta mulla taitaa olla tutina, että pysytään php-maailmassa :). Tosin, jos laskutusohjelma skaalautuu suurillekin yrityksille, niin php voi koitua ns. pullonkaulaksi. Jos haluaa maailmantähteyttä eli että ohjelma huomioitaisiin ulkomaillakin, niin hyvin toteutettuna javscript laskutusohjelmalle voisi olla kysyntää (=kehitystä myös ulkomailta). Mitä on seuraillu benchmarkeja yms, niin javascripti on aika vauhdikkaan oloinen.

Omasta mielestäni paras osio mlinvoicessa on se, että se osaa laskea maksumuistutukset automaattisesti ja hyvitysten teko on helppoa (onneksi ei kumpaakaan tarvi tehdä useasti).

-Juho

Beluga

#14
Quote from: ioxo on 12.02.14 - klo:13:42
Suosittelen itse frameworkkina jotain, joka on tunnettu. Tällöin mahdollistaa parhaiten ohjelman kehittymisen. Itse osaan aika vähän ylipäätään ohjelmoida, mutta jonkin verran tajutakseen ideaa (yleensä). En näkisi kauhean fiksuksi kehittää ohjelmaa jonkin cms-ohjelmiston (frameworkin) päälle. Tuohan olisi melkein yhtä pahaa puukotusta kuin wordpressillä toteuttais laskutus-ohjelmaa. Toinen hyvä puoli tunnetussa frameworkissa on se, että frameworkin kehitys ei lopu. Ikävä jos ollaan kehitetty hyvä laskutusohjelma ja pari tärkeää lisäominaisuutta löytyisi toisista framworkeista, mutta alustaksi on valittu jokin marginaali fw ja sitte kirjotellaan taas uudestaan koko ohjelmaa kun muutamat fw ominaisuudet onki aika työläitä toteuttaa...

Php-maailmasta löytyy hyviä frameworkkejä kuten esim. yii, symphony, codeigniter. Omasta mielestä codeigniter oli ehkä noista helpoin mitä joskus toteuttelin sivuja frameworkillä. Yii:n oppii. Symphonystä en niin tiedä :)

Codeigniterhan on käytännössä kuollut.

Jos viittaat mainostamaani Processwireen marginaalisena frameworkkina, niin siihenhän on tulossa Composer-tuki, jolloin siihen voisi integroida elementtejä mistä hyvänsä frameworkista. On myös huomattava, että Laravelillä on edelleen vain yksi pääkehittäjä. Ylipäätään frameworkkien "hiekkalaatikkomaisuus" on menossa pois, joten en pelkäisi tilannetta, jossa projekti on maalannut itsensä nurkkaan (kunhan ei valitse jo kuollutta frameworkkia).

Pakko vielä laittaa fanipojun hehkutukset vastineena tuohon Wordpress-vertaukseen; tää on siltä kaverilta, joka muunsi puhtaalla PHP:llä kehittämänsä toimisto-ohjelmiston PW:lle:
QuoteLate 2012 I started porting the app in PW and was surprised how insanely fast developing could be. It was possible to recreate the core functionality in about 2 weeks, implementing the Login and Multi-User functionality took another week.