Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Esecuzione mista batch e online

    Ciao,
    come capirete dal post, non sono uno svluppatore; sto valutando PHP su MySQL come piattaforma su cui sviluppare un nuovo progetto e, leggendo post e documentazione in giro, non sono riuscito a capire un paio di cosette:

    1) E' possibile scrivere del codice PHP che possa essere schedulato con le operazioni pianificate di Windows; a me servirebbe però che questo stesso codice potesse essere invocato anche da una o più pagine del sito web. Il codice dovrebbe eseguitre calcoli e logiche di controllo sui dati ottenendo e scrivendo tutti i dati da un DB MySQL. Questo è possibile?

    2) Questa forse è una domanda stupida, ma non essendo uno svilupatore il dubbio ce l'ho: il codice di cui al punto 1 è piuttosto complesso e per essere semplificato avrebbe bisogno di essere segmentato in unità logiche semplici che verrebbero richiamate da un 'main program' in funzione delle condizioni e dei dati in input. Quanto è presente e quanto è efficace in PHP lo sviluppo di codice con moduli innestati?

    Grazie a chi vorrà spendere 5 minuti per rispondermi; mi sarebbe di grande aiuto; se poi riuscite a darmi l'indirizzo di qualche documento che mi chiarisca meglio le idee, ringrazio due volte.

    Andrea

  2. #2
    Per quanto riguarda il primo punto, si potrebbe fare in tal modo:

    nello schedulare un'azione da windows, il programma da eseguire deve essere php.exe, dopodiché gli devi dire quale file .php esso deve eseguire.
    Ad esempio se il tuo file si chiama calcola.php il comando da schedulare deve essere:

    php -f PATH....\calcola.php

    Per maggiore comprensione dovresti cercare qualcosa tipo "eseguire php da shell".

    Hai scritto:

    a me servirebbe però che questo stesso codice potesse essere invocato anche da una o più pagine del sito web.

    Essendo in modalità shell, eventuali output vengono inviati alla console di windows. Quindi se hai necessità di visualizzare l'output sul browser potresti fare una pagina dal nome diverso che venga richiamata dalle tue pagine web.
    Se, invece, non hai bisogno di output verso browser:
    1) come prima cioé pagina php con nome diverso da calcola.php e a fine pagina metti il redirect verso una tua pagina del sito;
    2) usare il comando exec per eseguire php.exe:
    exec("php -f PATH\calcola.php").

  3. #3
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    ciao, benvenuto

    1: sì, puoi utilizzare le operazioni pianificate di windows per avviare uno script php con php.exe via cmd, il codice può anche essere riutilizzato per uso normale su web senza nessun problema

    2: con php puoi "segmentare" il codice in funzioni

    function eseguiCalcoloUno($partoDaQui)
    {
    $risultato = $partoDaQui * 10;
    return($risultato);
    }

    function eseguiCalcoloDue($partoDaQui)
    {
    $risultato = $partoDaQui - 20;
    return($risultato);
    }

    $base = 22;

    echo eseguiCalcoloDue(eseguiCalcoloUno($base)); // risultato = 200

    potresti anche valutare l'utilizzo della programmazione ad oggetti

    http://www.php.net/oop5

    ciao
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  4. #4
    Per il punto 2 non farti problemi di efficienza, vista la potenza di calcolo degli hardware attuali e la velocità elevata di accesso e risposta a MySQL Server. Oppure l'accesso al tuo sito web riguarda centinaia di utenti?

    Sono d'accordo con Gunn sull'utilizzo della programmazione ad oggetti perché sicuramente fornisce una potenza concettuale maggiore rispetto allo stile di programmazione orientato alle funzioni.

  5. #5
    Grazie 1000 a Gunn e gianf_tarantino.
    Le vostre risposte mi sono state molto utili.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.