- Não é uma playlist para aprender Codelgniter do
zero
. - Aprofundar os conhecimentos da framework.
- Dicas e pequenos projetos para desenvolvimento de soluções web.
- Destaque de novidades na evolução do framework.
- HTML, CSS, JS, PHP, MySQL, Terminal, Etc...
- Laragon, Visual Studio Code, HeidiSQL, Git, Composer, Google Chrome.
-
Ambas são frameworks Full Stack de PHP.
-
Laravel é mais conceituada e com mais demanda de mercado.
-
CodeIgniter: MVC, configuração simples, desenvolvimento rápido, fácil de aprender.
-
Laravel: Arquitetura limpa, mais robusto, com grande ecosistema.
-
CodeIgniter tem uma performace mais rápida do que o laravel.
-
CodeIgniter para projetos de média escala.
-
Laravel para média e grande escala.
-
Links Extras: https://pt.wikipedia.org/wiki/CodeIgniter
-
Documentação - https://codeigniter.com/user_guide/index.html
- Site - https://codeigniter.com/
- Documentação - https://codeigniter.com/user_guide/index.html
- Site - https://laragon.org/
-
Site - https://windows.php.net/
-
Baixar: VS16 x64 Non Thread Safe
Zip
. -
Criar a pasta php-8.1.9-nts-Win32-vs16-x64 dentro de
C:\laragon\bin\php
, e colar todos os arquivos da pasta zip.
- Verificando a versão do PHP.
php -v
-
Variáveis de ambiente/path/editar
-
colar o caminho
C:\laragon\bin\php\php-8.1.9-nts-Win32-vs16-x64\
- PHP tools
- Fonts para o editor.
- Site - https://github.com/tonsky/FiraCode/releases
- Site - https://getcomposer.org/
- Verifica a versão instalada do compser.
composer -v
- Git Bash (Terminal).
- Site - https://git-scm.com/download/
Manualmente.
- Downloads - https://codeigniter.com/download
- Ex: app_01
Composer.
composer create-project codeigniter4/appstarter app_02
- Ex: app_02
- Ex: app_03
- Ex: app_04
php spark make:model Usuario
- Cria o arquivo models Usuarios.php na pasta:
app/Models/Usuarios.php
.
Sistema de Autenticação e Autorização.
- Autenticação (
authentication
).- Permite verificar se o usúsario pode ou não entrar no sistema.
- Autorização (
authorization
).- Permite verificar se que áreas ou funcionalidades um usuário pode aceder.
Sistema de Autenticação e Autorização.
- É um sistema tradicional de login com muitos detalhes.
- Preparação do projeto.
- Migrações (
migrations
). - Criar contas de usuário.
- Confirmação via email.
- Encriptação de dados pessoais e senhas.
- Recuperação de senha.
- Alteração de senha.
- Login/Logout.
- Controle de autorizações.
- ... e muito mais.
Link - https://codeigniter.com/download
-
Ex: app_05
-
Extenção VsCode -
PHP Intelephense
. -
Rotas
app/Config/Routes.php
php spark
- Cria o ficheiro do controlador
php spark make:controller Main
- Ex: app_06
php spark make:migration Usuarios
php spark migrate
- Ex: app_07
php spark make:seeder usuarios
Extenção Visual Studio code
- Random String Generator
- Visual Studio code,
- Ctrl + p, ">generate", ... random string/password, , .
php spark db:seed Usuarios
php spark migrate:rollback
php spark migrate
Comando para pesquisar na tabela descriptado
- SELECT AES_DECRYPT(username, UNHEX(SHA2('3y8FHYGfThUpcvE0AC25Sj5OlsD17Ab8', 512))) usuario, passwrd FROM users
- Ex: app_08
- Ex: app_09
Validação do formulário.
- Model users
- Buscar os dados do utilizador a partir do formulário submetido.
- Retorno de true ou false, consoane login ok ou nok.
php spark make:model User
-
Ex: app_10
-
Usuario logado?
- Não -> mostra quadro login
- Sim -> mostra página interior
-
Ex: app_11
-
Logout: Google Chrome,
F12/Application/Storage/Clear site data
- Ex: app_12
php spark make:controller UserController
-
Ex: app_13
-
Filters: https://codeigniter.com/user_guide/incoming/filters.html?highlight=filters
Filters
php spark make:filter User/UserFilter
- Localhost: http://localhost/CodeIgniter-4/app_13/public/
- Localhost: http://localhost/CodeIgniter-4/app_13/public/index.php/home
- Ex: app_14
- Ex: app_15
php spark make:filter UserLoggedInFilter
-
Ex: app_16
Validation Rules
-
Ex: app_17
-
Bootstrap 5 - https://getbootstrap.com/docs/5.0/utilities/text/
- Localhost: http://localhost/CodeIgniter-4/app_18/public/
- Ex: app_18
Lista completa spark
- Spark
php spark
db:seed
- Executa o propagador especificado para preencher dados conhecidos no banco de dados.
php spark db:seed usuarios
-
Teste para expression regular
expressão regular
. -
Regular Expression:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])
-
https://codeigniter.com/user_guide/libraries/validation.html#available-rules
regex_match
- Falha se o campo não corresponder ao normal expressão.
-
Facilitar o Login de usuarios na aplicacão em desenvolvimento.
-
Ex: app_19
-
Localhost: http://localhost/CodeIgniter-4/app_19/public/index.php/login_frm
-
Ex: app_20
-
Localhost: http://localhost/CodeIgniter-4/app_20/public/index.php/login_frm
-
Ex: app_21
-
Localhost: http://localhost/CodeIgniter-4/app_21/public/index.php/login_frm
-
http://localhost/CodeIgniter-4/app_21/public/index.php/versessao
-
Ex: app_22
-
Localhost: http://localhost/CodeIgniter-4/app_22/public/index.php/login_frm
-
Ex: app_23
-
Localhost: http://localhost/CodeIgniter-4/app_23/public/index.php/login_frm
php spark db:seed usuarios
php spark make:filter User/UserIsAdmin
-
Ex: app_24
-
Localhost: http://localhost/CodeIgniter-4/app_24/public/index.php/login_frm
-
Ex: app_25
-
Localhost: http://localhost/CodeIgniter-4/app_25/public/index.php/login_frm
Formulário de nova conta
Usuario
Password
Repetir password
[Criar]
|
|
|
v
Verifica se já existe user com email indicado
Sim - Não pode criar conta
Não
- Criar um código (Purl)
- Criar a conta nos users
- Enviar um email com purl (link)
- Conta está ativa
php spark migrate:rollback
php spark migrate
php spark db:seed usuarios
-
Ex: app_26
-
Localhost: http://localhost/CodeIgniter-4/app_26/public/index.php/login_frm
-
Localhost: http://localhost/CodeIgniter-4/app_26/public/index.php/new_user_account_frm
-
Validation: https://codeigniter.com/user_guide/libraries/validation.html?highlight=validation#available-rules
matches | Yes | O valor deve corresponder ao valor do campo
no parâmetro. | matches[field]
- Ex: app_27
-
Ex: app_28
-
Localhost: http://localhost/CodeIgniter-4/app_28/public/index.php/login_frm
Create new user account
- Guardar os dados de username e password
- Gerar um purl (Guardado na base de dados)
- retornar o purl
Send email with purl to validation email address
- Preparar um email com o purl
- Enviar o email para username
-
Ex: app_29
-
http://localhost/CodeIgniter-4/app_29/public/index.php/login_frm
-
http://localhost/CodeIgniter-4/app_29/public/index.php/teste
-
Ex: app_30
-
http://localhost/CodeIgniter-4/app_30/public/index.php/login_frm
-
https://codeigniter.com/user_guide/libraries/email.html?highlight=email%20class
-
Sending Email
//Exemplo
$email = \Config\Services::email();
$email->setFrom('your@example.com', 'Your Name');
$email->setTo('someone@example.com');
$email->setCC('another@another-example.com');
$email->setBCC('them@their-example.com');
$email->setSubject('Email Test');
$email->setMessage('Testing the email class.');
$email->send();
SELECT AES_DECRYPT(username, UNHEX(SHA2('3y8FHYGfThUpcvE0AC25Sj5OlsD17Ab8', 512))) usuario, purl FROM users
Verificar se o purl é válido (Tamanho)
Verificar se existe o purl na base de dados.
- Não: Redirecionar para a pagina inicial
- Sim:
Passa a ativo = 1
Atualiza o updated_at
remove o purl
Apresenta uma mensagem a indicar que a conta foi confirmada
-
Ex: app_32
-
http://localhost/CodeIgniter-4/app_32/public/index.php/login_frm
-
http://localhost/CodeIgniter-4/app_32/public/index.php/verify_email/oLqVxAvrBJYx
-
laragon/bin/sendmail/output
Verificar se existe o purl na base de dados.
- Não: Redirecionar para a pagina inicial
- Sim: Apresenta uma mensagem a indicar que a conta foi confirmada
-
Ex: app_33
-
http://localhost/CodeIgniter-4/app_33/public/index.php/login_frm
-
http://localhost/CodeIgniter-4/app_33/public/index.php/verify_email/baEohSzlJvPV
Validação do formulário
- Email válido
Verificar se o usuário existe na base de dados
- Não: Redirecionar para home
- Sim: Criar um purl, adicionar á db, enviar um email com purl e apresentar a mensagem
Verificar se o usuário está em condições de recuperar a senha
- Verifica se o usuário tem conta na base de dados
- Email existe,
- ativo = 1
-
Ex: app_36
-
http://localhost/CodeIgniter-4/app_36/public/index.php/login_frm
-
Select
SELECT AES_DECRYPT(username, UNHEX(SHA2('3y8FHYGfThUpcvE0AC25Sj5OlsD17Ab8', 512))) usuario, purl, active FROM users
Verificar se o purl está associado a uma conta de utilizador
Não: Vai para a home page
Sim: Apresenta uma página com o formulário para definir a nova senha
-
Ex: app_39
-
http://localhost/CodeIgniter-4/app_39/public/index.php/login_frm
-
laragon/bin/sendmail/output
http://localhost/CodeIgniter-4/app_39/public/index.php/user_recover_password_check/hfOSGnoVgdYR
Font-Awesome
-
Site: https://fontawesome.com/
-
Instalar o Font-Awesome
http://localhost/CodeIgniter-4/app_41/public/index.php/user_recover_password_check/hfOSGnoVgdYR
- New
http://localhost/CodeIgniter-4/app_41/public/index.php/user_recover_password_check/PYAZcTECXVGI
- Open SSL Encrypt
php -m
- Verificar se o id_user existe no post e se é válido
- Validar o formulário
- Formulário Ok?
- Atualizar o password na base de dados
- Apresentar página de password alterada com sucesso
-
Ex: app_43
-
http://localhost/CodeIgniter-4/app_43/public/index.php/login_frm
-
Change user password after recover
http://localhost/CodeIgniter-4/app_43/public/index.php/user_recover_password_check/nEtyXTJLLSxA
Form Validation - Available Rules
- Matches
Matches | O valor deve corresponder ao valor do campo
no parâmetro.| matches[field]
- Doc: https://codeigniter.com/user_guide/libraries/validation.html?highlight=validation#available-rules
- Ex: app_46
composer update
Github
git config --global user.name "Seu Nome"
git config --global user.email "Exemplo.@gmail.com"
git init
git status
git add .
git commit -m "meu commit"
- Criar um novo repositorio no site do github
- Site: https://github.com/new
…or push an existing repository from the command line
git remote add origin https://github.com/daniel-oliv3/ci-auth-codeigniter.git
git branch -M main
git push -u origin main
-
By: Daniel Oliveira
Instagram
- https://www.instagram.com/danieloliv3/Facebook
- https://web.facebook.com/danielsapup3/Twitter
- https://twitter.com/danielsapup3/Linkedin
- https://www.linkedin.com/in/danielsapup3/