Loading repository data…
Loading repository data…
martingom4 / repository
Paco Librery es un sistema de gestión de librerías desarrollado en PHP sin el uso de frameworks. Este proyecto utiliza Docker para configurar un entorno de desarrollo con Apache y PostgreSQL
Este es un sistema de gestión de librerías desarrollado en PHP sin el uso de frameworks. Utiliza Docker para manejar el entorno de desarrollo con Apache y PostgreSQL.
Asegúrate de tener Docker instalados en tu sistema. Despues de esto recuerda que es importante ejecutar Docker para su funcionamiento
Esto es necesario para asegurarte de que los archivos tengan saltos de línea compatibles con entornos Linux (LF).
eol.auto a \n (LF).Esto evita que Git convierta los saltos de línea automáticamente al formato CRLF al clonar o extraer repositorios.
git config --global core.autocrlf input
Esto asegura que Git conserve los saltos de línea en el formato original (LF) del repositorio.git clone <URL del repositorio>
cd Paco-librery
entrypoint.shEsto es necesario para que el archivo entrypoint.sh pueda ejecutarse dentro del contenedor.
Abre una terminal en Visual Studio Code.
Asegurate que la terminal sea bash
Asegúrate de estar en el directorio raíz de tu proyecto.
Ejecuta el siguiente comando:
chmod +x ./docker/entrypoint.sh
Esto asignará permisos de ejecución al archivo.
Crear el archivo de entorno:
Crea un archivo .env en la raíz del proyecto con las siguientes variables de entorno:
# Configuración general del entorno
APP_ENV=
APP_DEBUG=
# Configuración de la base de datos
DB_CONNECTION=
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
APP_ENV=development y APP_DEBUG=true en .env para ver los errores y advertencias.APP_ENV=production y APP_DEBUG=false para ocultar errores y advertencias en el entorno de producción.Si es la primera vez iniciando Docker, ejecuta este comando:
docker-compose up --build
Iniciar los contenedores: Ejecuta el siguiente comando para iniciar el entorno:
docker-compose up -d
Acceder al proyecto: Una vez que los contenedores estén en ejecución, abre el navegador y accede a la URL:
Ejecutar migraciones de la base de datos:
Las migraciones se ejecutan automáticamente al iniciar el contenedor. Si deseas ejecutarlas manualmente, usa el archivo src/migrations/init.sql.
Apagar el proyecto: Para detener los contenedores, ejecuta:
docker-compose down
Las ramas que se estan utilizando se pueden activar con:
git checkout -b Desarrollo remotes/origin/Desarrollo
Se tendria que navegar dependiendo de lo que se quiera programar
## Estructura de Carpetas
- **src/public/**: Contiene los archivos frontend (HTML, CSS, JS) y el archivo `home.php`.
- **src/app/**: Contiene la lógica de backend, organizada en controladores, modelos, vistas y helpers.
- **src/config/**: Configuración del proyecto, incluyendo la conexión a la base de datos.
- **docker/**: Archivos de configuración de Docker, como el Dockerfile y configuraciones de Apache.
- **logs/**: Carpeta para almacenar los logs de Apache y PHP.
## Acceso a Logs
- **Apache logs**: Los logs de Apache se encuentran en `logs/apache/`.
- **PHP logs**: Los logs de PHP están en `logs/php/`.
- Estos logs son útiles para depurar y solucionar problemas en el proyecto.
## Notas
- La base de datos persiste en un volumen llamado `db_data`, por lo que los datos no se perderán cuando se apaguen los contenedores.
- Cualquier cambio en la carpeta `src` se refleja automáticamente en el contenedor.
---
# Guía para Mantener las Ramas Actualizadas sin Conflictos
## 1. **Usar `git fetch` para Traer Cambios sin Fusionarlos Automáticamente**
El comando `git fetch` permite traer los últimos cambios del repositorio remoto sin aplicarlos automáticamente en las ramas locales. Esto es útil para revisar los cambios antes de fusionarlos y evitar conflictos inesperados.
git fetch origin
Esto actualizará la referencia de las ramas remotas en tu repositorio local (como `origin/busqueda-libro`, `origin/develop`, etc.) sin modificar tus ramas locales.
---
## 2. **Verificar los Cambios en las Ramas Remotas**
Para inspeccionar los cambios antes de aplicarlos, puedes comparar tus ramas locales con las versiones en el remoto. Esto es útil para identificar posibles conflictos antes de la fusión.
git diff origin/
Ejemplo para la rama `develop`:
git diff develop origin/develop
---
## 3. **Fusionar los Cambios con `rebase` en Lugar de `merge`**
Utilizar `rebase` en lugar de `merge` ayuda a mantener un historial de cambios más limpio y facilita la resolución de conflictos. Sigue estos pasos para actualizar tu rama:
1. Cambia a la rama local que deseas actualizar:
git checkout
2. Usa `rebase` para aplicar los cambios de la rama remota:
git rebase origin/
Ejemplo para `develop`:
git checkout develop #esto es para moverte entre las ramas que existen en este caso develop git rebase origin/develop
Si hay conflictos, Git solicitará que los resuelvas uno por uno. Después de resolver cada conflicto, usa:
git add git rebase --continue
Si deseas abortar el rebase en cualquier momento, puedes usar:
```b
git rebase --abort
Evita trabajar directamente en las ramas principales como main o develop. En su lugar, utiliza ramas de características (feature branches) para cada tarea específica, por ejemplo, busqueda-libro o registro-cliente. Esto permite que los cambios se prueben y validen antes de fusionarlos en las ramas principales.
push al RemotoAntes de subir tus cambios al repositorio remoto:
git fetch y git rebase en tu rama de trabajo para asegurarte de que tienes la última versión del remoto y evitar conflictos de último momento.Para subir tus cambios:
git push origin <rama-local>
Aquí tienes un ejemplo del flujo completo, usando la rama busqueda-libro como ejemplo:
Trae los cambios del remoto:
git fetch origin
Rebasa tu rama busqueda-libro sobre develop del remoto para mantenerla actualizada:
git checkout busqueda-libro
git rebase origin/develop
Resuelve cualquier conflicto si es necesario, luego:
git add <archivo-con-conflicto>
git rebase --continue
Finalmente, sube tus cambios:
git push origin busqueda-libro
Siguiendo estos pasos, el equipo puede mantener el repositorio sincronizado y minimizar los conflictos en el proceso de colaboración. Si tienes dudas, consulta con el equipo antes de proceder.
Proyecto realizado por: