¿Necesitas un proyecto a medida?
Creamos experiencias digitales únicas: sitios web impactantes, tiendas online con estilo, sistemas personalizados que enamoran y marcas que dejan huella.
🎯 Desarrollo Web | 🎨 Diseño Gráfico | 🛍️ E-commerce | ⚙️ SaaS
🔗 Descubre lo que podemos hacer juntos
#############################################################
☰ Documentación TécnicaIntroducción
Estructura
Requisitos
Instalación
Configuración
Guía de Uso
Módulos
Modelos
Vistas
API Traducción
Assets
Includes
Base de Datos
Scripts
Seguridad
Extender
FAQ
Bienvenido a la documentación completa de Akaunting PHP. Aquí encontrarás descripción, configuración, uso diario, y pautas de desarrollo y mantenimiento.
Organización de carpetas y archivos:
📂 Estructura del Proyecto
├── .htaccess
├── AkauntingPHP.txt
├── LICENSE
├── README.md
├── akaunting_php.sql
├── akaunting_php.zip
├── api
│ └── translate.php
├── assets
│ ├── css
│ │ └── styles.css
│ └── js
│ └── app.js
├── check_files.php
├── config
│ ├── config.php
│ └── database.php
├── controllers
│ ├── AccountController.php
│ ├── AuthController.php
│ ├── BillController.php
│ ├── CategoryController.php
│ ├── ClientController.php
│ ├── CustomFieldController.php
│ ├── DashboardController.php
│ ├── InvoiceController.php
│ ├── InvoiceTemplateController.php
│ ├── MenuPermissionController.php
│ ├── ProductController.php
│ ├── ReconciliationController.php
│ ├── ReportController.php
│ ├── SettingController.php
│ ├── TransactionController.php
│ ├── UserController.php
│ ├── VendorController.php
│ └── WarehouseController.php
├── create_views.php
├── dashboard
│ └── index.php
├── database
│ └── database.txt
├── debug.php
├── documentation.html
├── generate_tree.php
├── includes
│ ├── auth.php
│ ├── functions.php
│ └── helpers.php
├── index.php
├── install.php
├── logs
│ ├── logs.txt
│ └── php_error.log
├── models
│ ├── AccountModel.php
│ ├── BillItemModel.php
│ ├── BillModel.php
│ ├── CategoryModel.php
│ ├── ClientModel.php
│ ├── CustomFieldModel.php
│ ├── InvoiceItemModel.php
│ ├── InvoiceModel.php
│ ├── InvoiceTemplateModel.php
│ ├── MenuPermissionModel.php
│ ├── ProductCategoryModel.php
│ ├── ProductModel.php
│ ├── ReconciliationModel.php
│ ├── SettingsModel.php
│ ├── TransactionModel.php
│ ├── VendorModel.php
│ └── WarehouseModel.php
├── schema.sql
├── uploads
│ ├── logo.png
│ └── logo_1745168240.png
└── views
├── accounts
│ ├── form.php
│ ├── index.php
│ └── show.php
├── bills
│ ├── form.php
│ ├── index.php
│ ├── print.php
│ └── show.php
├── categories
│ ├── form.php
│ └── index.php
├── clients
│ ├── form.php
│ ├── index.php
│ └── show.php
├── custom_fields
│ ├── create.php
│ ├── edit.php
│ ├── form.php
│ ├── index.php
│ ├── render.php
│ ├── show.php
│ ├── store.php
│ └── update.php
├── dashboard
│ └── index.php
├── errors
│ ├── 404.php
│ └── 500.php
├── helpers
│ ├── backup.php
│ ├── export_import.php
│ └── ui.php
├── invoice_templates
│ ├── form.php
│ ├── index.php
│ └── preview.php
├── invoices
│ ├── form.php
│ ├── index.php
│ ├── print.php
│ └── show.php
├── layouts
│ ├── footer.php
│ ├── header.php
│ ├── login.php
│ ├── notifications.php
│ ├── register.php
│ └── sidebar.php
├── products
│ ├── form.php
│ ├── index.php
│ └── show.php
├── reconciliations
│ ├── form.php
│ ├── index.php
│ ├── print.php
│ └── show.php
├── reports
│ ├── expense.php
│ ├── income.php
│ ├── profit_loss.php
│ └── tax.php
├── settings
│ ├── backups.php
│ ├── company.php
│ ├── email.php
│ ├── invoice.php
│ ├── menu_permissions.php
│ ├── settings_menu.php
│ ├── taxes.php
│ └── warehouses.php
├── transactions
│ ├── form.php
│ ├── index.php
│ ├── show.php
│ └── transfer.php
├── users
│ ├── change_password.php
│ ├── form.php
│ ├── index.php
│ └── profile.php
├── vendors
│ ├── form.php
│ ├── index.php
│ └── show.php
└── warehouses
├── form.php
└── index.php
- PHP >= 8.1.31 (CLI y módulo)
- MySQL >= 5.7
- Apache/Nginx con .htaccess habilitado
- Extensiones: PDO, cURL, mbstring, OpenSSL
- Permisos 775 en
logs/yuploads/
- Descomprime
akaunting_php.zipen tu directorio web. - Renombra
config/config.php.exampleaconfig/config.phpy ajusta tus valores. - Actualiza
config/database.phpcon credenciales de la base de datos. - Importa
schema.sql(oakaunting_php.sql) vía phpMyAdmin o CLI. - Ejecuta
install.phpy sigue el asistente. - Elimina
install.phptras la instalación (seguridad). - Verifica logs en
logs/php_error.logpara confirmar ausencia de errores.
- Error 500: Revisa
logs/php_error.log. - Conexión BD fallida: Valida host/usuario/contraseña.
- Permisos: Ajusta chmod 775 en carpetas de subida y logs.
<?php return [ 'app_name' => 'Akaunting PHP', 'base_url' => 'http://ejemplo.com/', 'timezone' => 'Europe/Madrid', 'debug' => true ];
<?php return [ 'host' => 'localhost', 'user' => 'root', 'pass' => 'secreto', 'name' => 'akaunting_db', 'port' => 3306 ];
Abre index.php, ingresa credenciales y accede al Dashboard.
Visualiza métricas clave: ingresos, gastos, facturas pendientes y notificaciones.
- Menú Lateral → Clientes
- Crear / Editar / Eliminar registros
- Buscador y filtros avanzados
- Menú → Facturas
- Form para nueva factura con items, impuestos y descuentos
- Generar PDF e imprimir desde
print.php
- Ingresos vs. Gastos
- Reporte de Impuestos
- Pérdidas y Ganancias
En Settings puedes definir moneda, prefijos, backups y roles de usuario.
Patrón CRUD en controllers/. Ejemplo: ClientController.php
<?php
class ClientController {
public function index() { /* Listado */ }
public function create() { /* Formulario */ }
public function store() { /* Guardar */ }
public function show($id) { /* Detalle */ }
public function edit($id) { /* Editar */ }
public function update($id) { /* Actualizar */ }
public function destroy($id) { /* Eliminar */ }
}
Ubicados en models/, extienden conexión PDO y ofrecen métodos:
getAll(),find($id)create($data),update($id,$data)delete($id)
Arquitectura MVC Básico: views/entidad/*.php
index.php— Listadoform.php— Crear/Editarshow.php— Detalle
Layout global: views/layouts/header.php, sidebar.php, footer.php.
api/translate.php expone un endpoint REST:
POST /api/translate.php
{ "text":"hola mundo","lang":"en" }
=> { "translated":"hello world" }
Incluye caching local en includes/functions.php.
Global en assets/css/styles.css y assets/js/app.js:
- Menú responsivo
- Toasts de notificaciones
- Validaciones frontend
auth.php: sesiones y permisosfunctions.php: UTILS, envío de email, logginghelpers.php: formateo fechas, números
Esquema en schema.sql. Tablas principales:
- users, clients, invoices
- invoice_items, transactions
- settings, logs
Relaciones:
invoices.client_id → clients.idinvoice_items.invoice_id → invoices.id
generate_tree.php: muestra estructura de carpetas.check_files.php: comprueba archivos críticos.debug.php: activa modo debug completo.
Usa mysqldump en cron diario:
0 2 * * * mysqldump -u root -p secreta akaunting_db > backups/backup_$(date +\%F).sql
Configura logrotate para no saturar logs/.
- Respaldar archivos y BD.
- Reemplazar carpeta del proyecto con nueva versión.
- Ejecutar migraciones (si aplica).
- Verificar logs y funcionalidades.
Define roles en tabla settings y gestiona en SettingController.
- Crear Controller, Model y Vistas (index, form, show).
- Añadir ruta en
views/layouts/sidebar.php. - Actualizar
assets/js/app.jssi necesita lógica. - Registrar modelo en
includes/functions.php(opcional).
En BD, tabla users, actualizar con password_hash('nueva', PASSWORD_DEFAULT).
Modificar 'timezone' en config/config.php.
- 503 ó 500: revisar permisos y módulos PHP.
- PDOException: validar credenciales BD.