!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/proyectos/toba_referencia/php/tutorial/   drwxr-xr-x
Free 14.63 GB of 61.93 GB (23.62%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     pant_introduccion.php (9.48 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php 
require_once("tutorial/pant_tutorial.php");

class 
pant_definicion extends pant_tutorial
{
    function 
generar_layout()
    {
        echo 
"
            <p>
                SIU-Toba es un Ambiente de Desarrollo Web que utiliza a PHP como lenguaje de programación.
                Lo llamamos <strong>Ambiente</strong> porque es una suite de distintas utilidades:
                <ul>
                    <li>Un conjunto de <strong>librerías</strong> que son consumidas en ejecución.
                    <li>Un <strong>editor web</strong> destinado a la definición/configuración del proyecto, creación de operaciones y definición de sus comportamiento.
                    <li>Un conjunto de <strong>comandos de consola</strong> destinados a administrar los proyectos creados con la herramienta.
                </ul>
            </p>
            <p>
                Las definiciones realizadas en el editor web se las denomina <strong>metadatos</strong>, y junto a las definiciones en código conforman el
                comportamiento del proyecto creado. Durante el desarrollo estos metadatos son almacenados en una base de datos relacional denominada <strong>instancia</strong>.
            </p>
        "
;
        
$img toba_recurso::imagen_proyecto('tutorial/esquema_general.png');
        echo 
"
            <h3>Flujo de trabajo</h3>
            <img src='
$img' style='float:right; padding:10px;'>
            <p>
                El flujo de desarrollo con la herramienta podría definirse así:
                <ol>
                    <li>Se utiliza el <strong>editor web</strong> de toba para definir una operación, sus pantallas, 
                            sus componentes gráficos, tablas que se consumen, etc. Todo esto se almacena en metadatos en una base de datos.
                    <li>Se utiliza un <strong>editor PHP</strong> para crear el código necesario para cubrir lógica particular de la operación.
                    <li>Durante este proceso se va probando la operación desde el mismo <strong>editor web</strong> haciendo ajustes contextuales.
                    <li>Una vez terminada se utilizan los <strong>comandos administrativos</strong> para exportar el proyecto 
                        desde el puesto de desarrollo e importarlo en el sistema en producción.
                    <li>En el sistema en producción sólo necesita las <strong>librerías</strong> o <em>runtime</em>
                         para ejecutar el proyecto (código + metadatos).
                </ol>
            </p>
        
        "
;
    }
}

class 
pant_directorios extends pant_tutorial 
{
    function 
generar_layout()
    {
        
$comandos toba_parser_ayuda::parsear_wiki('Referencia/Consola''comandos de consola''toba_editor');
        
$wiki toba_parser_ayuda::parsear_wiki('WikiStart''wiki''toba_editor');
        
$puntos_de_acceso toba_parser_ayuda::parsear_wiki('Referencia/PuntosDeAcceso''puntos de acceso''toba_editor');
        
$api toba_parser_ayuda::parsear_api('index''se encuentra publicada''toba_editor');
        
$proyectos toba_parser_ayuda::parsear_wiki('Proyectos#Internos''proyectos propios''toba_editor');
        echo 

            <p>
            La siguiente es una lista de los directorios más importantes de Toba y sus funcionalidades a alto nivel:
            <ul class='lista-separada'>
                <li><strong>bin</strong>: Contiene la puerta de entrada a los 
$comandos.
                        Para poder ejecutarlos desde cualquier terminal/consola, a este directorio es necesario incluirlo en el PATH del sistema operativo.
                        
                <li><strong>doc</strong>: Contiene documentación interna del proyecto. Para el desarrollador, la mejor documentación se encuentra en el 
$wiki y en este tutorial.
                
                <li><strong>instalacion</strong>: Contiene toda la configuración local (base que se utiliza, proyectos que se editan, alias de apache, etc.)
                                                    y los metadatos locales (logs, usuarios, etc.).
                                                    Generalmente es un directorio que no se versiona ya que solo contiene información local
                                                    de esta instalación.
                
                <li><strong>php</strong>
                    <ul>
                        <li><strong>3ros</strong>: Librerías externas utilizadas en el proyecto.
                        
                        <li><strong>consola</strong>: Código fuente de los comandos administrativos de consola.
                        
                        <li><strong>contrib</strong>: Código contribuido por los proyectos, que aún no pertenecen al núcleo 
                                                    pero que esta bueno    compartir.
                        
                        <li><strong>lib</strong>: Clases sueltas propias comunes a todo el ambiente
                        
                        <li><strong>modelo</strong>: Contiene una serie de clases que utilizan el editor y los comandos
                                para editar metadatos y código. Forman una base útil para armar otras herramientas consumiendo una API de alto nivel. 
                                Por ejemplo si el proyecto determina que es necesario desarrollar un instalador con
                                prestaciones extras, es un buen comienzo consumir estas clases.
                        
                        <li><strong>nucleo</strong>: <em>Runtime</em> o conjunto de clases que se utilizan en la ejecución de un proyecto.
                                        La documentación de estas clases 
$api.
                    </ul>
                <li><strong>proyectos</strong>: Este directorio contiene los 
$proyectos del ambiente y es el lugar sugerido 
                                                para nuevos proyectos. Aunque pueden situarlos en cualquier directorio, 
                                                si están aquí es más fácil configurarlos.
                    <div class='proyectos'>
                    <ul>
                        <li>...
                        <li><strong>mi_proyecto</strong>:
                            <ul>
                                <li><strong>metadatos</strong>: Contiene la última exportación de metadatos del proyecto.
                                <li><strong>php</strong>: Directorio que será parte del <em>include_path</em> de PHP, 
                                                            se asume que el proyecto almacenará aquí sus extensiones y demás código.
                                <li><strong>temp</strong>: Directorio temporal no-navegable propio del proyecto
                                <li><strong>www</strong>: Directorio navegable que contiene los 
$puntos_de_acceso a la aplicación.
                                    <ul>
                                        <li><strong>css</strong>: Plantillas de estilos CSS del proyecto.                                    
                                        <li><strong>img</strong>: Imagenes propias del proyecto.
                                        <li><strong>temp</strong>:  Directorio temporal navegable del proyecto.
                                    </ul>
                            </ul>
                        <li>...
                    </ul>        
                    </div>        
                <li><strong>temp</strong>: Directorio temporal no-navegable común.
                <li><strong>var</strong>: Recursos internos a Toba.
                <li><strong>www</strong>: Directorio navegable que contiene recursos web que consumen el <em>runtime</em> y los proyectos.
                    <ul>
                        <li><strong>css</strong>: Plantillas de estilos CSS disponibles.
                        <li><strong>img</strong>: Imagenes comunes que pueden utilizar los proyectos.
                        <li><strong>js</strong>: Clases javascript propias de toba y externas.
                        <li><strong>temp</strong>: Directorio temporal navegable común.
                    </ul>
            </ul>
        "
;    
        
    }
}

class 
pant_ejecucion extends pant_tutorial 
{
    function 
generar_layout()
    {
        
$img toba_recurso::imagen_proyecto('tutorial/esquema_ejecucion_general.png');
        
$img2 toba_recurso::imagen_proyecto('tutorial/esquema_ejecucion_detalles.png');
        echo 
"
        <p>
            <img src='
$img' style='float:right; padding:0px;'>        
            En la introducción vimos que existe un <em>núcleo</em> o <em>Runtime</em> encargado de la ejecución.
            A diferencia de una librería clásica, no existe el concepto de procedimiento principal o <em>main</em>
            en el cual el programador incluye las librerías y las consume. En Toba la situación es distinta:            
            <ul>
                <li>El proyecto brinda un <em>punto de acceso</em> en donde se incluye al núcleo de toba (generalmente es el archivo www/aplicacion.php).
                <li>A partir de allí el núcleo analiza los <strong>metadatos</strong> del proyecto y de la operación
                    puntual que se ejecuta, activando los componentes acordes.
                <li>Si alguna clase del runtime o algún componente se encuentra extendido por el proyecto,
                        recién allí el programador puede incluir código propio, siempre enmarcado en un 'plan
                        maestro' ya delineado.
            </ul>
            
            <h3 style='clear:both'></h3>
            Lo más interesante para mostrar en este tutorial es cómo el proyecto puede variar el comportamiento en ejecución.
            En el siguiente gráfico se muestra un mayor detalle de la ejecución resaltando en gris los puntos
            donde el proyecto tiene el control de la ejecución, ya sea con <strong>metadatos</strong> o 
            con <strong>extensión</strong> de código. 
            
            <div style='text-align:center; margin-top:10px;'>
            <img src='
$img2'>        
            </div>
        </p>
        "
;
    }
}


class 
pant_administracion extends pant_tutorial 
{
    function 
generar_layout()
    {
        
$img toba_recurso::imagen_proyecto('tutorial/administracion.png');        
        
$wiki toba_parser_ayuda::parsear_wiki('Referencia/Deployment''Casos de Uso de Deployment''toba_editor');        
        echo 
"
            <p>
                Cuando utilizamos el <strong>editor web</strong> de Toba, estamos definiendo un proyecto en base a <strong>metadatos</strong>, almacenados
                en una base de datos definida durante la instalación.
            </p>
            <p>
                Lo positivo de esto es que, al estar centralizada, es posible que un grupo de desarrollo localizado en 
                la misma red pueda desarrollar sobre esta base en forma simultánea. Además se puede utilizar SQL tanto para manipular 
                como para obtener los metadatos.
            </p>
            <p>
                Lo negativo es que mientras estos metadatos no sean exportados al sistema de archivos no podrán ser compartidos
                con otros grupos de trabajo o dentro de un mismo grupo geográficamente distante. Esta necesidad de 
                importar - exportar metadatos se cubre usando los <strong>comandos de consola</strong>.
                Como introducción a estos comandos necesitamos presentar dos:
                <ul>
                 <li><em>toba instancia exportar</em>: Exporta desde la base hacia el sistema de archivos
                 <li><em>toba instancia regenerar</em>: Importa desde el sistema de archivos hacia la base
                </ul>
            </p>
            <div style='text-align:center; margin-top:10px;'>
            <img src='
$img'>        
            </div>            
            <p>
                Para analizar en más profundidad estas y otras situaciones puede ver los <strong>
$wiki</strong>
            </p>            
        "
;
    }
}


?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.8162 ]--