Blog

Riguardo l'autore

Giovanni Montanile

Software e Web Developer

L'autore ha scritto

Magento 2 - usare Transaction per salvare oggetti

Magento 2 - usare Transaction per salvare oggetti

Magento 2 è la nuova versione della piattaforma E-commerce che offre nuove e interessanti funzionalità. Tra queste Transaction per salvare oggetti. Una funzionalità poco conosciuta, che risulta però molto utile se si desidera garantire uno stato coerente nel database. Con una singola transazione è possibile combinare molti oggetti da salvare . In tal caso sono possibili due esiti: Transazione riuscita garantisce che tutte le operazioni SQL all'interno della transazione siano eseguite senza problemi. Quindi i dati sono validi e vengono salvati in db. Errore di transazione qualcosa è accaduto durante l'esecuzione della transazione. I sistemi di transazione forniscono una funzione chiamata rollback in cui i dati vengono ripristinati all’istante prima dell’inizio della transazione. Magento 2 in alcuni casi  non sembra garantire un comportamento corretto nelle operazioni verso il db. Un esempio è il mal funzionamento con "rollback della transazione asimmetrica", ossia il salvataggio di default di tutte le informazione riguardati più tabelle. Tale malfunzionamento può essere risolto usando alternativamente:TransactionFactory o Custom SQL statement transaction TransactionFactory Il seguente codice mostra come utilizzare TransactionFactory in Magento 2: class MyClass { protected $saveTransaction; public function __construct \Magento\Framework\DB\TransactionFactory $transactionFactory ){ $this->saveTransaction = $transactionFactory->create(); } public function saveManyObjects() { ... $this->saveTransaction->addObject($order); $this->saveTransaction->addObject($customer); $this->saveTransaction->addObject($customObject); $this->saveTransaction->save(); } } Se si esegue il metodo saveManyObjects () di questa classe, tutti gli oggetti specificati vengono salvati contemporaneamente. Per una transazione è necessario iniettare la classe \ Magento \ Framework \ DB \ TransactionFactory, che offre tutte le funzionalità necessarie. È possibile aggiungere oggetti da salvare con il metodo addObject (). Si possono aggiungere oggetti quali: ordini, clienti, prodotti o persino oggetti personalizzati. Tramite il metodo save() viene eseguito automaticamente un commit o una rollback in base all’esito dell’operazione garantendo uno stato coerente dei dati.  Custom SQL statement transactions Se si vuole usare istruzioni SQL custom utilizzando le transazioni è possibile riferirsi al seguente codice di esempio: $connection = $this->getConnection(); $connection->beginTransaction(); try { ... $connection->commit(); } catch (\Exception $e) { $connection->rollBack(); throw $e; } È possibile chiamare il metodo beginTransaction () per inizializzare una transazione sull'oggetto “connection” dell'utente. In seguito si possono creare le istruzioni di inserimento o aggiornamento. Con commit () vengono rese persistenti le operazioni sul database. Se qualcosa non è andato a buon fine, il costrutto try catch chiamerà una transaction rollBack per ripristinare uno stato coerente del database e genererà un errore. In conclusione Magento 2 offre tutto il necessario per utilizzare le transazioni. Una transazione è uno strumento utile per rendere sicure le modifiche al database, impedendo di corrompere un database se qualcosa non ha avuto esito positivo.

Bitcoin  e il “bitcoin-mining”

Bitcoin e il “bitcoin-mining”

Il Bitcoin è stata la prima valuta virtuale. Nata tra la fine del 2008 e l’inizio del 2009 per iniziativa di Satoshi Nakamoto, pseudonimo dietro cui si nasconde il suo fondatore, è attualmente la criptovaluta più conosciuta sul mercato. Al mondo vi sono più di 1.500 criptovalute, ma meno conosciute rispetto al Bitcoin, almeno per ora. La criptovaluta è la forma di pagamento preferita dagli hacker. Malware silenziosi entrano nel computer, non per danneggiarlo né per rubare i dati, ma per estratte bitcoin o altre criptovalute. Vengono eseguiti complessi processi crittografici per estrarre le monete digitali dando origine al fenomeno noto come bitcoin-mining. Altri hacker hanno invece creato malware mascherati da app di criptovaluta, ingannando chi pensa di scaricare app popolari. Un esempio sono le botnet, una massa di computer dirottati usati dagli hacker per l'elaborazione e per l’estrazione di criptovaluta. Quando la botnet Mirai ha colpito nel 2016, gli hacker hanno preso il controllo di migliaia di dispositivi connessi in tutto il mondo. Steve McGregory, direttore dell'applicazione e delle informazioni sulle minacce presso la società di sicurezza Ixia, ha individuato un malware progettato per restare nascosto su macchine compromesse ed estrarre criptovaluta in background. Possedere uno di questi computer significherebbe un drammatico rallentamento delle prestazioni. Secondo i ricercatori di sicurezza di Recorded Future, il malware per attività minerarie è venduto online a un costo inferiore a $ 35. McGregory ha dichiarato che le applicazioni minerarie nel Google Play Store sono state scaricate più di 10 milioni di volte. Su giochi di puzzle, cruciverba e app di tic-tac-toe e su un gioco chiamato Reward Digger, il giocatore, pensando di guadagnare monete virtuali, sta in realtà aiutando gli hacker a estrarre Bitcoin. Dunque il Bitcoin ha cambiato significativamente l’economia globale e con esso anche il mercato della sicurezza informatica.

Visualizzo 1-2 di 2 elementi.