PHP Classes

Personal: Generate a portfolio site

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2025-01-11 (27 days ago) RSS 2.0 feedNot enough user ratingsTotal: 23 This week: 6All time: 11,291 This week: 7Up
Version License PHP version Categories
personal 1.0.0MIT/X Consortium ...5PHP 5, Content management, Business, A...
Description 

Author

This package can generate a portfolio site.

It implements an application that can present the portfolio of a professional.

Currently, it can:

- Manage and display the projects of the professional with support to filter the projects by category

- Contact form to let users send messages to the professional

Picture of Rodrigo Faustino
  Performance   Level  
Name: Rodrigo Faustino <contact>
Classes: 37 packages by
Country: Brazil Brazil
Innovation award
Innovation award
Nominee: 23x

Winner: 3x

Documentation

Portfolio Website

Este projeto é um site de portfólio dinâmico desenvolvido com PHP puro, utilizando o padrão MVC clássico e sem arquitetura REST. O objetivo do site é oferecer um layout moderno e funcional, onde o conteúdo é gerenciado de forma dinâmica por uma área administrativa, ideal para exibir projetos, habilidades e informações de contato.

? Tecnologias Utilizadas

O site desenvolvido com as seguintes tecnologias e ferramentas:

  • PHP Puro: Linguagem principal do backend, sem uso de frameworks, garantindo simplicidade e desempenho.
  • Padrão MVC Clássico: Estrutura do código organizada em Modelos, Controladores e Views, facilitando a manutenção e escalabilidade do projeto.
  • League\Plates: Biblioteca de templates para PHP, responsável por gerenciar e renderizar as Views de forma eficiente.
  • HTML5, CSS3 e W3.CSS: Para criar uma interface moderna e responsiva.
  • Font Awesome: Biblioteca de ícones para enriquecer a experiência visual.
  • JavaScript (Vanilla): Para funcionalidades interativas básicas, como manipulação de menus e animações.
  • Monolítico: Toda a aplicação (frontend e backend) é servida como um único sistema integrado, sem APIs REST ou microserviços.

?? League\Plates\Engine

O League\Plates é uma biblioteca de templates leve e eficiente para PHP. Utilizamos essa ferramenta para separar a lógica da apresentação, permitindo:

  • Herança de Templates: Reutilização de estruturas HTML comuns, como cabeçalhos e rodapés.
  • Passagem de Dados: Possibilidade de enviar variáveis do controlador para as Views.
  • Modularização: Separação de componentes (parciais) como menus, rodapés e cabeçalhos.

Exemplo de Uso no Projeto

No projeto, utilizamos o League\Plates\Engine para renderizar templates de forma dinâmica. Aqui está um exemplo:

Configuração da Engine no Backend:

use League\Plates\Engine;

class View
{
    public static function render($template, $data = [])
    {
        $engine = new Engine(__DIR__ . '/../views');
        echo $engine->render($template, $data);
    }
}

Template Principal (master.php)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= $title ?? 'Portfolio Website' ?></title>
    <link rel="stylesheet" href="/assets/css/styles.css">
</head>
<body>
    <header>
        <?= $this->insert('partials/header') ?>
    </header>
    <main>
        <?= $this->section('content') ?>
    </main>
    <footer>
        <?= $this->insert('partials/footer') ?>
    </footer>
</body>
</html>

Renderização no Controlador

detalhe importante (sistema de templates) https://platesphp.com/

class Portifolio{
    public function index()
    {
        $projects = Project::all();
        View::render('portfolio', [
            'title' => 'My Portfolio',
            'projects' => $projects,
        ]);
    }
}

?? Funcionalidades

Menu Dinâmico: Gerado com base em configurações do backend. Filtros de Portfólio: Filtragem de projetos por categoria (Design, Fotos, Arte, etc.). Área de Contato: Formulário funcional para envio de mensagens. Layout Responsivo: Compatível com dispositivos móveis e desktops. Área Administrativa: Para gerenciar conteúdo do portfólio.

? Estrutura de Pastas

A organização do projeto segue uma estrutura simples e eficiente:

project/
??? app/
?   ??? controllers/
?   ??? database/
?   ?   ??? models/
?   ?        ??? Model.php
?   ?   ??? Connection.php
?   ?   ??? Transaction.php
?   ??? models/
?   ??? views/
?       ??? admin/
?       ??? auth/
?       ??? pages/
?       ??? partial/
? 
??? vendor/
??? public/
?   ??? assets/
?      ??? css/
?      ??? js/
?      ??? images/
?   ??? index.php
??? .env

Pré-requisitos e Instalação

Clone o repositório:

git clone https://github.com/faustinopsy/personal.git

Configure o ambiente no arquivo .env:

arquivo .env

STRIPE_KEY=token do striper se for receber dinhero
DATABASE_NAME=a01_teste
DATABASE_HOST=localhost
DATABASE_USER=root
DATABASE_PASSWORD=root123
BASE_URL=http://localhost:1230
EMAIL=conta de email
SENHA=senha para envio de email
APP_SECRET_KEY=53xy69

Instale as dependências com o Composer:

composer install

Inicie um servidor local:

php -S localhost:8000 -t public

? Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.

? Licença

Este projeto é licenciado sob a MIT License.


  Files folder image Files (116)  
File Role Description
Files folder imageapp (6 directories)
Files folder imagepublic (2 files, 2 directories)
Accessible without login Plain text file .env.example Data Auxiliary data
Accessible without login Plain text file .htaccess Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file composer.lock Data Auxiliary data
Accessible without login Plain text file database.sql Data Auxiliary data
Accessible without login Plain text file iniciar_estrtutura.bat Data Auxiliary data
Accessible without login Plain text file readme.md Doc. Documentation
Accessible without login Plain text file SECURITY.md Data Auxiliary data

  Files folder image Files (116)  /  app  
File Role Description
Files folder imagecontrollers (14 files)
Files folder imagedatabase (2 files, 1 directory)
Files folder imagelang (5 files)
Files folder imagelibrary (9 files)
Files folder imagemodels (10 files)
Files folder imageviews (6 files, 5 directories)

  Files folder image Files (116)  /  app  /  controllers  
File Role Description
  Plain text file AdminBlogPostController.php Class Class source
  Plain text file AdminController.php Class Class source
  Plain text file AdminPortfolioController.php Class Class source
  Plain text file AdminResumeController.php Class Class source
  Plain text file AdminUserController.php Class Class source
  Plain text file HomeController.php Class Class source
  Plain text file LoginController.php Class Class source
  Plain text file NotFoundController.php Class Class source
  Plain text file PageController.php Class Class source
  Plain text file PasswordResetController.php Class Class source
  Plain text file PortifolioController.php Class Class source
  Plain text file RegisterController.php Class Class source
  Plain text file ResumeController.php Class Class source
  Plain text file TwoFactorController.php Class Class source

  Files folder image Files (116)  /  app  /  database  
File Role Description
Files folder imagemodels (1 file)
  Plain text file Connection.php Class Class source
  Plain text file Transaction.php Class Class source

  Files folder image Files (116)  /  app  /  database  /  models  
File Role Description
  Plain text file Model.php Class Class source

  Files folder image Files (116)  /  app  /  lang  
File Role Description
  Accessible without login Plain text file ch.json Data Auxiliary data
  Accessible without login Plain text file en.json Data Auxiliary data
  Accessible without login Plain text file es.json Data Auxiliary data
  Accessible without login Plain text file jp.json Data Auxiliary data
  Accessible without login Plain text file pt.json Data Auxiliary data

  Files folder image Files (116)  /  app  /  library  
File Role Description
  Plain text file Auth.php Class Class source
  Plain text file AuthMiddleware.php Class Class source
  Plain text file Controller.php Class Class source
  Plain text file Lang.php Class Class source
  Plain text file Mailer.php Class Class source
  Plain text file Redirect.php Class Class source
  Plain text file Route.php Class Class source
  Plain text file Router.php Class Class source
  Plain text file View.php Class Class source

  Files folder image Files (116)  /  app  /  models  
File Role Description
  Plain text file BlogPost.php Class Class source
  Plain text file PasswordReset.php Class Class source
  Plain text file PortfolioItem.php Class Class source
  Plain text file Resume.php Class Class source
  Plain text file ResumeEducation.php Class Class source
  Plain text file ResumeExperience.php Class Class source
  Plain text file ResumeSkill.php Class Class source
  Plain text file ResumeSocial.php Class Class source
  Plain text file ResumeTechnology.php Class Class source
  Plain text file User.php Class Class source

  Files folder image Files (116)  /  app  /  views  
File Role Description
Files folder imageadmin (1 file, 4 directories)
Files folder imageauth (3 files)
Files folder imageblog (1 file)
Files folder imagepages (2 files)
Files folder imagepartials (2 files)
  Accessible without login Plain text file home.php Example Example script
  Accessible without login Plain text file login.php Example Example script
  Accessible without login Plain text file portifolio.php Example Example script
  Accessible without login Plain text file resume.php Example Example script
  Accessible without login Plain text file template.php Example Example script
  Accessible without login Plain text file two_factor.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  admin  
File Role Description
Files folder imageblog-posts (3 files)
Files folder imageportfolio (3 files)
Files folder imageresumes (3 files)
Files folder imageusers (3 files)
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  admin  /  blog-posts  
File Role Description
  Accessible without login Plain text file create.php Example Example script
  Accessible without login Plain text file edit.php Example Example script
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  admin  /  portfolio  
File Role Description
  Accessible without login Plain text file create.php Example Example script
  Accessible without login Plain text file edit.php Example Example script
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  admin  /  resumes  
File Role Description
  Accessible without login Plain text file create.php Example Example script
  Accessible without login Plain text file edit.php Example Example script
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  admin  /  users  
File Role Description
  Accessible without login Plain text file create.php Example Example script
  Accessible without login Plain text file edit.php Example Example script
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  auth  
File Role Description
  Accessible without login Plain text file esqueci_senha.php Example Example script
  Accessible without login Plain text file register.php Example Example script
  Accessible without login Plain text file reseta_senha.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  blog  
File Role Description
  Accessible without login Plain text file show.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  pages  
File Role Description
  Accessible without login Plain text file privacy-policy.php Example Example script
  Accessible without login Plain text file terms-and-conditions.php Example Example script

  Files folder image Files (116)  /  app  /  views  /  partials  
File Role Description
  Accessible without login Plain text file footer.php Aux. Configuration script
  Accessible without login Plain text file nav.php Example Example script

  Files folder image Files (116)  /  public  
File Role Description
Files folder imageassets (2 directories)
Files folder imagelogs (1 file)
  Accessible without login Plain text file index.php Example Example script
  Accessible without login Plain text file iniciar.php Example Example script

  Files folder image Files (116)  /  public  /  assets  
File Role Description
Files folder imagecss (2 files, 1 directory)
Files folder imageplugin (1 directory)

  Files folder image Files (116)  /  public  /  assets  /  css  
File Role Description
Files folder imagefont-awesome-4.7.0 (1 file, 4 directories)
  Accessible without login Plain text file fonts-google.css Data Auxiliary data
  Accessible without login Plain text file w3.css Data Auxiliary data

  Files folder image Files (116)  /  public  /  assets  /  css  /  font-awesome-4.7.0  
File Role Description
Files folder imagecss (2 files)
Files folder imagefonts (1 file)
Files folder imageless (14 files)
Files folder imagescss (14 files)
  Accessible without login Plain text file HELP-US-OUT.txt Doc. Documentation

  Files folder image Files (116)  /  public  /  assets  /  css  /  font-awesome-4.7.0  /  css  
File Role Description
  Accessible without login Plain text file font-awesome.css Data Auxiliary data
  Accessible without login Plain text file font-awesome.min.css Data Auxiliary data

  Files folder image Files (116)  /  public  /  assets  /  css  /  font-awesome-4.7.0  /  fonts  
File Role Description
  Accessible without login Plain text file fontawesome-webfont.svg Data Auxiliary data

  Files folder image Files (116)  /  public  /  assets  /  css  /  font-awesome-4.7.0  /  less  
File Role Description
  Accessible without login Plain text file animated.less Data Auxiliary data
  Accessible without login Plain text file bordered-pulled.less Data Auxiliary data
  Accessible without login Plain text file core.less Data Auxiliary data
  Accessible without login Plain text file fixed-width.less Data Auxiliary data
  Accessible without login Plain text file font-awesome.less Data Auxiliary data
  Accessible without login Plain text file icons.less Data Auxiliary data
  Accessible without login Plain text file larger.less Data Auxiliary data
  Accessible without login Plain text file list.less Data Auxiliary data
  Accessible without login Plain text file mixins.less Data Auxiliary data
  Accessible without login Plain text file path.less Data Auxiliary data
  Accessible without login Plain text file rotated-flipped.less Data Auxiliary data
  Accessible without login Plain text file screen-reader.less Data Auxiliary data
  Accessible without login Plain text file stacked.less Data Auxiliary data
  Accessible without login Plain text file variables.less Data Auxiliary data

  Files folder image Files (116)  /  public  /  assets  /  css  /  font-awesome-4.7.0  /  scss  
File Role Description
  Accessible without login Plain text file font-awesome.scss Data Auxiliary data
  Accessible without login Plain text file _animated.scss Data Auxiliary data
  Accessible without login Plain text file _bordered-pulled.scss Data Auxiliary data
  Accessible without login Plain text file _core.scss Data Auxiliary data
  Accessible without login Plain text file _fixed-width.scss Data Auxiliary data
  Accessible without login Plain text file _icons.scss Data Auxiliary data
  Accessible without login Plain text file _larger.scss Data Auxiliary data
  Accessible without login Plain text file _list.scss Data Auxiliary data
  Accessible without login Plain text file _mixins.scss Data Auxiliary data
  Accessible without login Plain text file _path.scss Data Auxiliary data
  Accessible without login Plain text file _rotated-flipped.scss Data Auxiliary data
  Accessible without login Plain text file _screen-reader.scss Data Auxiliary data
  Accessible without login Plain text file _stacked.scss Data Auxiliary data
  Accessible without login Plain text file _variables.scss Data Auxiliary data

  Files folder image Files (116)  /  public  /  assets  /  plugin  
File Role Description
Files folder imagemarkdown (3 files)

  Files folder image Files (116)  /  public  /  assets  /  plugin  /  markdown  
File Role Description
  Accessible without login Plain text file custom-markdown.js Data Auxiliary data
  Accessible without login Plain text file simplemde.min.css Data Auxiliary data
  Accessible without login Plain text file simplemde.min.js Data Auxiliary data

  Files folder image Files (116)  /  public  /  logs  
File Role Description
  Accessible without login Plain text file php_errors.log Data Auxiliary data

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:23
This week:6
All time:11,291
This week:7Up