Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Você está aqui: Laravel ::: Laravel + MySQL ::: Passos Iniciais |
|
Como efetuar uma conexão Laravel + MySQL e testá-la a partir de uma rota Route ou de um controllerQuantidade de visualizações: 4040 vezes |
|
Já sabemos que o banco de dados MySQL, ou MariaDB, é um dos bancos open source mais usados. Por isso, a maioria das aplicações PHP e Laravel fazem uso desse banco. Nesta dica mostrarei como configurar uma conexão Laravel 8 + MySQL e depois testar a conexão a partir de uma Route e de um controller. Comece localizando o arquivo .env na raiz do seu projeto (cuidado: se sua versão do Laravel não for 8, pode ser que este arquivo esteja localizado em outro local). Abra este arquivo no seu editor de texto favorito (caso não saiba como abrir o arquivo .env, use a opção File -> Open File do Visual Code da Microsoft) e localize as linhas abaixo: DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= Encontrou as linhas mencionadas? Agora altere-as para as definições abaixo: DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=loja DB_USERNAME=root DB_PASSWORD=osmar1234 Note que aqui eu defini o nome da base de dados como sendo "loja". É claro que os parâmetros de conexão Laravel + MySQL podem variar do meu exemplo para o seu. Agora vamos testar essa conexão a partir de uma Route. Vá até o diretório C:\xampp\htdocs\loja\routes e abra o arquivo web.php. Crie uma nova rota com o código abaixo: <?php use Illuminate\Support\Facades\Route; Route::get('listar', function(){ try{ // vamos tentar obter o PDO da conexão $pdo = DB::connection()->getPdo(); return "Conectado com sucesso à base de dados: " . DB::connection()->getDatabaseName(); } catch(\Exception $exc){ return "Erro ao conectar: " . $exc; } }); ?> Se a conexão foi efetuada com sucesso você verá a mensagem: Conectado com sucesso à base de dados: loja Vários autores gostam de testar a conexão disparando comandos SQL ou até mesmo criando models e tentando preechê-los a partir de uma tabela no banco de dados. Tudo isso é válido. No entanto, o que queremos aqui é testar a conexão com a base de dados MySQL, só isso. Assim, uma das melhores formas é tentar obter um PDO (PHP Data Object) a partir da conexão. Veja que usamos o método DB::connection()->getPdo() para esta finalidade. Isso não quer dizer que vamos usar PDO no Laravel. Longe disso. A intenção é só verificar se a conexão realmente funcionou. Usei um bloco try...catch para mostrar uma mensagem de erro caso a conexão não fosse bem sucedida, por exemplo, se o nome da base de dados estivesse errada, um erro do tipo: Erro ao conectar: PDOException: SQLSTATE[HY000] [1049] Unknown database 'loja' seria retornado. Veja agora como fazer esse teste a partir de um controller: <?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class ClienteController extends Controller{ // vamos obter o objeto Request public function novo(){ try{ // vamos tentar obter o PDO da conexão $pdo = DB::connection()->getPdo(); return "Conectado com sucesso à base de dados: " . DB::connection()->getDatabaseName(); } catch(\Exception $exc){ return "Erro ao conectar: " . $exc; } } } ?> Note que, no controller, nós precisamos referenciar Illuminate\Support\Facades\DB, coisa que não precisamos fazer na rota. E aqui está o código para a rota que chama o método novo() deste controller: <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ClienteController; // essa rota chama o método novo() do controller // ClienteController Route::get('/novo', [ClienteController::class, 'novo']); ?> Agora é só acessar a URL http://localhost/loja/public/novo e ver a mensagem indicando se a conexão com o banco de dados MySQL foi efetuada com sucesso ou não. |
|
Link para compartilhar na Internet ou com seus amigos: | |
VB.NET ::: Dicas & Truques ::: Data e Hora |
Como retornar o mês da data atual em VB.NET usando a propriedade Month da classe DateTimeQuantidade de visualizações: 8401 vezes |
A propriedade Month da classe DateTime do VB.NET é usada quando queremos retornar o mês de uma determinada data como um número inteiro, ou seja, esta propriedade retorna um valor inteiro na faixa de 1 até 12. Veja o código VB.NET completo para o exemplo: Imports System Module Program Sub Main(args As String()) ' Este exemplo mostra como extrair o mês da data ' atual. Lembre-se de que o mês começa em 1 (janeiro) Dim agora As DateTime = DateTime.Now 'obtém o mês. Dim mes As Integer = agora.Month Console.WriteLine("O mês para esta data é: " & mes) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: O mês para esta data é: 7 |
PHP ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Como usar o padrão de projeto Singleton em suas aplicações PHPQuantidade de visualizações: 8711 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementados extensivamente nas linguagens Java e C#. Como o PHP, a partir de sua versão 5, suporta praticamente todos os recursos da programação orientada a objetos, este padrão pode ser implementado também nesta linguagem sem muitas dificuldades. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em PHP. Observe o código a seguir: <? // Uma classe Singleton responsável por gravar // logs no sistema class Logger{ // variável estática e privada que guarda a instância // atual da classe private static $instancia = NULL; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static function getInstance(){ if(self::$instancia == NULL){ self::$instancia = new Logger(); } return self::$instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private function __construct(){ // não precisamos fazer nada aqui } // Método clone() também privado para evitar a criação // de clones desta classe private function __clone(){ // não precisamos fazer nada aqui } public function registrarLog($dados){ echo "Vou registrar o log: " . $dados; } } // vamos registrar um novo log usando a classe Singleton Logger::getInstance()->registrarLog("Novo usuário cadastrado."); ?> Ao executar este código teremos o seguinte resultado: Vou registrar o log: Novo usuário cadastrado. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteirosQuantidade de visualizações: 1436 vezes |
Pergunta/Tarefa: Escreva um método recursivo que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Seu método deverá ter a seguinte assinatura: public static int quantRepeticoes(int indice, int valor, int[] vetor){ // sua implementação aqui } Informe o 1 valor: 2 Informe o 2 valor: 7 Informe o 3 valor: 4 Informe o 4 valor: 7 Informe o 5 valor: 1 Informe o valor a ser pesquisado no vetor: 7 O valor informado se repete 2 vezes. Veja a resolução comentada deste exercício usando Java console: package exercicio; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos declarar um vetor de 10 inteiros int valores[] = new int[5]; // vamos pedir ao usuário que informe os valores do vetor for(int i = 0; i < valores.length; i++){ System.out.print("Informe o " + (i + 1) + " valor: "); // efetua a leitura do valor informado para a posição atual do vetor valores[i] = Integer.parseInt(entrada.nextLine()); } // agora vamos pedir para informar o valor a ser pesquisado System.out.print("\nInforme o valor a ser pesquisado no vetor: "); int valor = Integer.parseInt(entrada.nextLine()); // e vamos ver a quantidade de repetições int repeticoes = quantRepeticoes(0, valor, valores); System.out.print("O valor informado se repete " + repeticoes + " vezes."); System.out.println("\n"); } // método recursivo que recebe um valor public static int quantRepeticoes(int indice, int valor, int[] vetor){ if(indice == vetor.length - 1){ // caso base...hora de parar a recursividade if(vetor[indice] == valor){ return 1; // mais um repetição foi encontrada } } else{ // dispara mais uma chamada recursiva if(vetor[indice] == valor){ // houve mais uma repetição return 1 + quantRepeticoes(indice + 1, valor, vetor); } else{ return 0 + quantRepeticoes(indice + 1, valor, vetor); // não repetiu } } return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada } } |
C ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Apostila de C para iniciantes - Como criar um laço for infinito na linguagem CQuantidade de visualizações: 9788 vezes |
A linguagem C nos permite criar laços for infinitos. Para isso, só precisamos omitir as partes de inicialização, teste e incremento/decremento. Veja um exemplo:#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i = 1; for(;;){ printf("%d ", i); i++; if(i > 10) break; // sai do laço } printf("\n\n"); system("PAUSE"); return 0; } Veja que só usamos for(;;). Tenha o cuidado de fornecer uma forma de parar o laço. Do contrário seu programa executará até travar. |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em CQuantidade de visualizações: 2853 vezes |
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem C. Comece observando a imagem a seguir: Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[a^2 = c^2 - b^2\] Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem C: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]){ float c = 36.056; // medida da hipotenusa float b = 30; // medida do cateto adjascente // agora vamos calcular o comprimento da cateto oposto float a = sqrt(pow(c, 2) - pow(b, 2)); // e mostramos o resultado printf("A medida do cateto oposto é: %f", a); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A medida do cateto oposto é: 20.000877 Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada. |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Java - Padrões de projeto para iniciantes - Como usar o padrão de projeto Singleton em suas aplicações Java PHP - Como inserir um determinado número de zeros antes de um número em PHP usando a função sprintf() |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |