PHP İLE API OLUŞTURMA

PHP İLE API OLUŞTURMA.
Bu örneğimizde kendi oluşturacağımız api ile veri tabanı ile iletişim kurarak ekleme, düzenleme, listeleme ve silme işlemlerini gerçekleştireceğiz.

Merhaba arkadaşlar,

Bu örneğimizde kendi oluşturacağımız api ile veri tabanı ile iletişim kurarak ekleme, düzenleme, listeleme ve silme işlemlerini gerçekleştireceğiz.

Yapacağımız Örneği Test Etmek İçin Tıklayınız

İlk olarak “ArticleAPI” adında bir veri tabanı oluşturalım. Ardından bu veritabanımıza “article” adında bir tablo oluşturalım. Bu tabloda

  • id : Yazının Uniq numarası
  • title: Yazının başlığı
  • slag: Yazının SEO uyumlu başlıkları
  • text: Yazının metin kısmı

Veritabanımızı oluşturduk. Artık kod kısmımıza geçebiliriz. İlk olarak “apiOrnegi” adında bir klasör oluşturalım. Bu klasör de 4 temel dosyamız bulunacaktır. Bunlar

  • .htaccess
  • class.Article.php
  • database.php
  • index.php

Veritabanı Bağlantısı (database.php)

İlk olarak veritabanı bağlantımızı yapalım. Bunun için database dosyamızı açalım ve Database adında bir class oluşturalım.

<?php 
Class Database
{
 //Kodlar buraya...
}
?>

Veritabanı bağlantımız da kullanacağımız kullanıcı adı, şifre, veritabanı adres ve veritabanı adı parametreleri için birer değişken oluşturalım.

<?php 
Class Database
{
    private $user ;
    private $host;
    private $pass ;
    private $db;
}
?>

Bu değişkenlerimiz sabit bir değeri tutacakları için construct içerisinde bu değişkenlere sabit değerler atayalım.

<?php 
Class Database
{
    private $user ;
    private $host;
    private $pass ;
    private $db;

    public function __construct()
    {
        $this->user = "root";
        $this->host = "localhost";
        $this->pass = "";
        $this->db = "ArticleAPI";
    }
}
?>

Sabit değerleri atadığımıza göre artık bağlantı cümlemizi oluşturabiliriz. Bağlantı cümlesi için connect isimli bir metot oluşturalım. Ardından içerisine bağlantı cümlemizi ekleyelim. Oluşturduğumuz bağlantı değişkenini geri döndürelim. return $conn;

Database.php Tüm Kodlar

<?php 
Class Database
{
    private $user ;
    private $host;
    private $pass ;
    private $db;

    public function __construct()
    {
        $this->user = "root";
        $this->host = "localhost";
        $this->pass = "";
        $this->db = "ArticleAPI";
    }
    public function connect()
    {

        $conn = new PDO("mysql:host=".$this->host.";dbname=".$this->db.";", $this->user, $this->pass);
        return $conn;
    }
}
?>

Bağlantı cümlesi de eklendiğine göre veritabanı bağlantımız tamamlanmıştır.


Veritabanı İşlemleri (class.Article.php)

Veritabanı işlemlerimizi gerçekleştireceğimiz “Article” isminde bir sınıf oluşturalım. Bu sınıfımız içerisinde

  •  __construct(): Veritabanı nesnemizi tutacağımız yapıcı metot.
  • getAll() : Tüm listeyi getirecek olan metot.
  • getId($id = ”): Id ye göre veri getirecek olan metot.
  • getSlag($slag = ”): SEO url tipinde veri getirecek metot.
  • setArticle($title = ”, $text = ”): Yazı ekleme işleminde kullanacağımız metot.
  • editArticle($id = ”, $title = ”, $text = ”): Yazı düzenleme işleminde kullanacağımız metot.
  • deleteArticle($id = ”): Yazı silmek için kullanacağımız metot.
  • permalink($str, $options = array()): Başlıklarımızı SEO uyumlu hale getirecek metot.

Metotları belirlediğimize göre ilk sınıfımızı oluşturmaya başlayalım. İlk olarak sınıfımızın bulunduğu dosyaya veritabanı dosyamız olan “database.php” dahil edelim. Ardından kurucu metot da bu sınıfımızdan bir adet nesne oluşturalım.

<?php
require_once 'database.php';
class Article
{
	private $conn;
	public function __construct() {
		$conn= new Database();
		$this->conn = $conn->connect();
	}
}

Artık veritabanı sınıfımızdan türeyen “$conn” adında bir nesnemiz var. Bu nesnemizi kullanarak veritabanı işlemlerimizi yapabiliriz.

Tümünü Listeleme Metodu

Veri tabanına sorgu göndererek bütün yazıları aldığımız metot. Veri tabanından gelen verileri JSON tipinde geri gönderiyoruz.

function getAll()
	{
		
		$statement = $this->conn->prepare("SELECT * FROM article");
		$statement->execute();
		$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		$json = json_encode($results);
		return $json;
	}

Tek Yazı Gösterme Metodu (ID)

Kullanıcıdan bir id değeri alıyoruz. Bu id değeri sayısal bir değer değilse veya sistemde kayıtlı değilse Not Found hatasını geri döndürüyoruz.

ID değeri sayısal bir değerse ve bu değere eşit bir verinin olup olmadığını kontrol ediyoruz. Eğer böyle bir veri varsa veriyi JSON tipinde geri döndürüyoruz.

function getId($id = '')
	{
		$results = [
			"error"	=> "Not Found"
		];
		if (is_numeric($id)) {
			
			
			$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
			$statement->execute(array(
				"id"		=> $id
			));
			$count = $statement->rowCount();
			if ($count > 0)
				$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		}


		$json = json_encode($results);
		return $json;
	}

Tek Yazı Gösterme Metodu (SLAG – SEO Tip)

Kullanıcıdan bir slag (SEO tipi) değeri alıyoruz. Bu değerin karakter sayısı 1 den küçükse veya sistemde kayıtlı değilse Not Found hatasını geri döndürüyoruz.

Bu değere eşit bir verinin olup olmadığını kontrol ediyoruz. Eğer böyle bir veri varsa veriyi JSON tipinde geri döndürüyoruz.

function getSlag($slag = '')
	{
		$results = [
			"error"	=> "Not Found"
		];
		if (strlen($slag) > 0) {
			
			
			$statement = $this->conn->prepare("SELECT * FROM article WHERE slag=:slag");
			$statement->execute(array(
				"slag"		=> $slag
			));
			$count = $statement->rowCount();
			if ($count > 0)
				$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		}
		$json = json_encode($results);
		return $json;
	}

Yazı Ekleme Metodu

Veri tabanına kayıt işlemini bu metot yardımı ile gerçekleştiriyoruz. Kullanıcıdan başlık ve metin değerlerini alıyoruz.

Başlık veya metin değerlerimizden herhangi birisi boşa eğer Missing Parameter şeklinde bir hata mesajı veriyoruz.

Başlık değerimizi permalink metoduna gönderiyoruz ve bize geri gelen slag değerini değişkene aktarıyoruz. Ardından veri tabanına kayıt ediyoruz.

Kayıt sırasında bir hata oluşursa Something went wrong. şeklinde bir uyarı mesajı döndürüyoruz.

Kayıt başarıyla tamamlanması durumunda Article Added şeklinde bir uyarı mesajı döndürüyoruz.

function setArticle($title = '', $text = '')
	{
		$results = [
			"error"	=> "Missing Parameter"
		];

		if (strlen($title) > 0 && strlen($text) > 0) {
			$title = htmlspecialchars($title);
			$text  = htmlspecialchars($text);
			$slag = $this->permalink($title);

			
			

			$sql = "INSERT INTO article (title, slag, text) VALUES (:title,:slag, :text)";
			$query = $this->conn->prepare($sql);
			$status = $query->execute(array(
				"title"	=> $title,
				"slag"	=> $slag,
				"text"	=> $text
			));
			if ($status == true)
				$results = [
					"success"	=> "Article Added"
				];
			else
				$status = [
					"error"	=> "Something went wrong."
				];
		}
		$json = json_encode($results);
		return $json;
	}

Yazı Düzenleme Metodu

Bu metot için kullanıcıdan 3 adet değer alıyoruz. Bu değerlerden herhangi birisi boş olarak gelmesi durumunda Missing Parameter şeklinde uyarı mesajında bulunuyoruz.

Bu değerlerden en önemlisi id değeridir. Id değeri ile sistemde değiştirilmek istenen yazının olup olmadığını kontrol ediyoruz.

Değiştirilmek istenen yazı bulunamazsa eğer kullanıcıya Not Found şeklinde uyarı mesajında bulunuyoruz.

Değiştirilmek istenen değer bulunursa eğer veritabanımızı yeni değerler ile güncelliyoruz ve kullanıcıya Article Edit şeklinde uyarı mesajında bulunuyoruz.

function editArticle($id = '', $title = '', $text = '')
	{
                $title = htmlspecialchars($title);
		$text  = htmlspecialchars($text) ;
		$results = [
			"error"	=> "Missing Parameter"
		];

		$editStatus = false;
		if (is_numeric($id)) {
			$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
			$statement->execute(array(
				"id"		=> $id
			));
			$count = $statement->rowCount();
			$editStatus = ($count > 0) ? true : false;
		}
		if ($editStatus == false) {
			$results = [
				"error"	=> "Not Found"
			];
		}
		if (strlen($title) > 0 && strlen($text) > 0 && $editStatus == true) {
			$title = htmlspecialchars($title);
			$text  = htmlspecialchars($text);
			$slag = $this->permalink($title);
			$sql = "UPDATE article  SET title=:title,slag=:slag, text=:text WHERE id =:id";
			$query = $this->conn->prepare($sql);
			$status = $query->execute(array(
				"title"	=> $title,
				"slag"	=> $slag,
				"text"	=> $text,
				"id"	=> $id
			));
			if ($status == true)
				$results = [
					"success"	=> "Article Edit"
				];
			else
				$results = [
					"error"	=> "Something went wrong."
				];
		}
		$json = json_encode($results);
		return $json;
	}

Değiştirilmek istenen değer bulunursa eğer veritabanımızı yeni değerler ile güncelliyoruz ve kullanıcıya Article Edit şeklinde uyarı mesajında bulunuyoruz.

Yazı Silme Metodu

Bu metodumuz da kullanıcan id değerini alıyoruz. Id değeri boş gelmesi durumunda kullanıcıya Missing Parameter şeklinde bir uyarı döndürüyoruz.

Id değerinin olması durumunda ilk olarak veri tabanında girilen id değerine uygun bir verinin olup olmadığını kontrol ediyoruz.

İstenilen kayıt yoksa kullanıcıya Not Found şeklinde uyarı mesajında bulunuyoruz.

İstenilen kayıt varsa kaydı siliyoruz ve kullanıcıya Article Deleted şeklinde uyarı mesajında bulunuyoruz.

function deleteArticle($id = '')
	{

		$results = [
			"error"	=> "Missing Parameter"
		];
		$deleteStatus = false;
		if (is_numeric($id)) {
			$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
			$statement->execute(array(
				"id"		=> $id
			));
			$count = $statement->rowCount();
			$deleteStatus = ($count > 0) ? true : false;
		}
		if ($deleteStatus == false) {
			$results = [
				"error"	=> "Not Found"
			];
		}
		if ($deleteStatus == true) {
			
			
			$sql = "DELETE FROM article WHERE id=:id";
			$delete = $this->conn->prepare($sql);
			$status = $delete->execute(array(
				"id"	=> $id
			));
			if ($status == true)
				$results = [
					"success"	=> "Article Deleted"
				];
			else
				$results = [
					"error"	=> "Something went wrong."
				];
		}

		$json = json_encode($results);
		return $json;
	}

İstenilen kayıt varsa kaydı siliyoruz ve kullanıcıya Article Deleted şeklinde uyarı mesajında bulunuyoruz.

Permalink Metodu

Bu fonksiyon ile kullanıcı dostu url’ler oluşturmak için türkçe metinlerinizi derleyebilirsiniz. 

Bu metot alıntıdır. => Php Sef Link Fonksiyonu

function permalink($str, $options = array())
	{
		$str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
		$defaults = array(
			'delimiter' => '-',
			'limit' => null,
			'lowercase' => true,
			'replacements' => array(),
			'transliterate' => true
		);
		$options = array_merge($defaults, $options);
		$char_map = array(
			// Latin
			'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
			'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
			'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',
			'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
			'ß' => 'ss',
			'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
			'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
			'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
			'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
			'ÿ' => 'y',
			// Latin symbols
			'©' => '(c)',
			// Greek
			'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
			'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',
			'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
			'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',
			'Ϋ' => 'Y',
			'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
			'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
			'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
			'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',
			'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',
			// Turkish
			'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
			'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',
			// Russian
			'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh',
			'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O',
			'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
			'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu',
			'Я' => 'Ya',
			'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
			'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
			'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
			'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu',
			'я' => 'ya',
			// Ukrainian
			'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',
			'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',
			// Czech
			'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
			'Ž' => 'Z',
			'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',
			'ž' => 'z',
			// Polish
			'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',
			'Ż' => 'Z',
			'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
			'ż' => 'z',
			// Latvian
			'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
			'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
			'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',
			'š' => 's', 'ū' => 'u', 'ž' => 'z'
		);
		$str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
		if ($options['transliterate']) {
			$str = str_replace(array_keys($char_map), $char_map, $str);
		}
		$str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
		$str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
		$str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
		$str = trim($str, $options['delimiter']);
		return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;
	}

Bu metot alıntıdır. => Php Sef Link Fonksiyonu

Son metodumuzu da ekledik. Artık bu fonksiyonları çağırarak apimizi çalıştırabiliriz.

Devamını okumak için lütfen diğer sayfaya geçiniz…

Laravel Framework

Laravel Framework web geliştirme hizmetleri PHP’ye temiz ve şık bir web geliştirme çerçevesi sağlarken aynı zamanda geliştiricileri karmaşık kodlamadan kurtarır.

Laravel web geliştirme hizmetleri PHP’ye temiz ve şık bir web geliştirme çerçevesi sağlarken aynı zamanda geliştiricileri karmaşık kodlamadan kurtarır. Laravel, etkileyici ancak basit sözdizimini kullanırken harika uygulamalar geliştirmeye yardımcı olur. Laravel uyarlanabilir ve kullanımı kolaydır. Özel ihtiyaçlarınızı karşılayan çoklu modüller sunar. Laravel PHP Framework farklı web projelerinde kullanılan ortak görevleri basitleştirir. Bazı dev endüstriler tarafından kullanılır. Laravel’in yaratıcısı Taylor Otwell, “Laravel PHP ekosisteminde en güçlü olanıdır çünkü sadece modern web uygulamaları oluşturmak için gereken özellikleri içerir” demiştir. 

Laravel Framework bize etkileyici ve zarif bir sözdizimi sağlar. Laravel, gelişimi yaratıcı, keyifli ve gerçekten tatmin edici bir deneyim haline getirir. Laravel, yönlendirme, kimlik doğrulama, oturumlar ve önbellekleme gibi çoğu web projesinde kullanılan rutin görevlerinizi kolaylaştırmanıza yardımcı olacak kullanışlı bir framework. Erişilebilir olmasının yanı sıra, büyük ve sağlam uygulamalar için gereken güçlü araçları da sağlar. 


Şablon Aracı

Laravel, geliştiricilerin yoğun içerik ile olağanüstü düzenler oluşturmalarına yardımcı olan önceden yüklenmiş güçlü ve hafif bir şablon motoruna sahiptir. Laravel şablonu, sağlam CSS ve JS kodlamasıyla çeşitli sağlam widget’lar sunar. Tüm şablonlar, basit ancak işlevsel amaçlarla tasarlanmıştır. Genellikle saatlerce ve yüzlerce satırlık kod yazma gerektiren görevler, Laravel framework ile birkaç dakika içinde önceden oluşturulmuş işlevlerle gerçekleştirilebilir.


Kimlik Doğrulama ve Yetkilendirme

En iyi Laravel geliştirme şirketlerinden bazıları güvenli kimlik doğrulama ve yetkilendirme sağlar. Herhangi bir web uygulaması sahibinin güvenli kaynaklara erişen özgün ve yetkili kullanıcıların olduğundan emin olmalıdır. Hemen hemen her şey hazır olarak yapılandırıldığı için yetkilendirmenin uygulanması oldukça basittir. Laravel, iyi düzenlenmiş ve yönetilmesi çok kolay olan yetkilendirme mantığını ve kontrol erişimini sıralayan temel bir yöntemi de kolaylaştırır. 


Dahili Kütüphaneler

Laravel, önceden yüklenmiş dinamik kütüphanelere sahip tek sağlayıcı olarak size en iyi şekilde kolaylık sağlayan framework. Bu kütüphaneler, diğer PHP framework’lerinde bulunmayan Nesneye Dayalı kütüphaneleri içerir. Sorunsuz uygulama sunmanın yanı sıra, parola sıfırlama, dinamik istemcileri kontrol etme ve şifreleme gibi çeşitli özellikler içerir. 


MVC Mimari Desteği 

Model View Controller mimarisi Laravel’i web uygulama geliştirme için en iyi framework yapan faktördür. Performansı artırır, netlik sağlar ve daha iyi dokümantasyon sağlar. Şablonu ve temel kodları değiştirmeyi kolaylaştırır. Kısacası, yerleşik işlevleri genel süreci kolaylaştırır. Geliştiriciler sadece birkaç dakika içinde bir Laravel uygulaması geliştirmeye başlayabilirler. Her zaman büyük bir zaman tasarrufu sağlar. Daha hızlı ve yönetilmesi kolay olan güçlü bir web sitesi oluşturmanıza yardımcı olan ideal araçları ve hoş fikirleri kolaylaştırır.


Çok Dilde Uygulama Oluşturucu

Laravel’in geliştirme hizmetlerinin sağladığı diğer tüm avantajların yanı sıra, çok dilli uygulamaların oluşturulması da bir diğer avantajdır. Gerçekten, farklı dillere sahip farklı ülkelerde erişimini genişletmek isteyen işletmeler için doğru seçenektir. Laravel framework, web uygulamanızı farklı diller için kolay ve hızlı bir şekilde oluşturmanıza yardımcı olur. 


Laravel Bağlantı Linkleri

Anasayfa : laravel.com

Dökümantasyon : laravel.com/docs/7.x

Haberler: laravel-news.com/


Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Üçgenin Alanını Hesaplama

Üçgenin Alanını Hesaplama C Programlama dilini ve CodeBlocks geliştirme ortamını kullanarak üçgenin alanını hesaplayacağız.

Merhaba arkadaşlar,

Bugün ki yazımızda C Programlama dilini ve CodeBlocks geliştirme ortamını kullanarak üçgenin alanını hesaplayacağız.

Üçgenin alanını hesaplayabilmek için 2 temel değeri bilmemiz gerekiyor. Bunlar:

  • Taban alanı
  • Yükseklik

Temel iki değeri de biliyorsak, üçgenin alanını hesaplayabiliriz. Üçgenin alanını hesaplayabilmemiz için gerekli olan formül:

Üçgenin alanı = (Taban alanı * yükseklik) / 2

Formülümüzü de öğrendiğimize göre örneğimizi kodlamaya geçebiliriz.

Örneğimizde taban alanı ve yükseklik değerlerini kullanıcıdan alacağımız ve hesaplanan değeri ekrana yazdıracağımız için üç adet değişken oluşturalım. Bunlar:

  • Taban Alanı (integer tipinde “tabanAlani”)
  • Yükseklik (integer tipinde “yukseklik”)
  • Üçgenin Alanı (float tipinde “hesaplananAlan”)

Değişkenlerimizi oluşturalım ve gerekli değerleri kullanıcıdan alalım.

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tabanAlani,yukseklik;
    float hesaplananAlan;
    printf("Taban Alani: ");
    scanf("%d",&tabanAlani);
    printf("Yukseklik: ");
    scanf("%d",&yukseklik);
    return 0;
}

Kullanıcıdan taban alanı ve yükseklik değerlerimizi aldık. Aldığımız değerleri formülde uygun bir şekilde kullanırsak üçgenimizin alanını hesaplayabiliriz.

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tabanAlani,yukseklik;
    float hesaplananAlan;
    printf("Taban Alani: ");
    scanf("%d",&tabanAlani);
    printf("Yukseklik: ");
    scanf("%d",&yukseklik);


    hesaplananAlan = (tabanAlani * yukseklik) / 2.0;
    printf("Hesaplanan alan: %f",hesaplananAlan);

    return 0;
}

Tüm Kodlar

Üçgenin alanını hesaplama örneğinin tüm kodları

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int tabanAlani,yukseklik;
    float hesaplananAlan;
    printf("Taban Alani: ");
    scanf("%d",&tabanAlani);
    printf("Yukseklik: ");
    scanf("%d",&yukseklik);


    hesaplananAlan = (tabanAlani * yukseklik) / 2.0;
    printf("Hesaplanan alan: %f",hesaplananAlan);

    return 0;
}

Üçgenin alanını hesaplama örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Rastgele Şifre Üretme

Rastgele Şifre Üretme – 1, İnternet sitelerine kayıt olurken sık sık karşımıza çıkan şifre üretme programlarının bir benzerini oluşturmaya çalışacağız

Merhaba arkadaşlar,

Bugün sizlerle beraber bir önceki örneğimiz olan Rastgele Sayı Üretme örneğinin devamı niteliğinde olacaktır.

Örneğimizde internet sitelerine kayıt olurken sık sık karşımıza çıkan şifre üretme programlarının bir benzerini oluşturmaya çalışacağız. Fakat bu yazımızı iki parçaya böleceğiz. İlk parça da istenilen karakter sayısına göre rastgele şifre üreteceğiz. Örneğimizin ikinci parçasında ise kullanıcının belirlediği kriterlere göre şifre oluşturacağız.

Şifre oluşturma işlemine başlayabilmemiz için ilk olarak karakterlerimizi belirlememiz gerekiyor. Harf aralığımız olarak İngiliz Alfabesini tercih edeceğiz. Sayı aralığı olarak 0-9 sayı aralığını kullanacağız. Şifremizin daha güçlü olması için şifreleme örneğimize sembollerde ekleyeceğiz. Şimdi tek tek belirlediğimiz aralıkları inceleyelim

İngiliz Alfabesi Büyük Harf Aralığı

A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

İngiliz Alfabesi Küçük Harf Aralığı

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

Sayı Aralığı

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Sembol Aralığı

!, +, -, ?, *, _ , /, @, ‘, }, {, ,, /

Temel olarak aralığı bu şekilde tanımlayabiliriz.


Belirlediğimiz aralıkları birer dizi olarak örneğimize ekleyelim.

char buyukAlfabe[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char kucukAlfabe[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char rakam[10] = {'0','1','2','3','4','5','6','7','8','9'};
char sekil[13] = {'!','+','-','?','*','_','/','@','\'','}','{',',','\/'};

Dizimizi oluşturduk. Artık kullanıcıdan kaç karakterli bir şifre istediğini öğrenebiliriz. Bu karakter değerine ileride tekrar ihtiyacımız olacağı için “karakterSayisi” adında bir değişken oluşturalım ve bu değişkene kullanıcıdan alacağımız değeri atayalım.

char buyukAlfabe[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char kucukAlfabe[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char rakam[10] = {'0','1','2','3','4','5','6','7','8','9'};
char sekil[13] = {'!','+','-','?','*','_','/','@','\'','}','{',',','\/'};
printf("Kac karakterli bir sifre olusturmak istiyorsunuz ? \n");
int karakterSayisi = 1;
scanf("%d",&karakterSayisi);

Kullanıcıdan üreteceğimiz şifrenin kaç karakterli olacağını da öğrendiğimize göre artık şifremizi üretebiliriz. Rastgele şifreler oluşturacağımız için rastgele sayı üretme örneğimizde kullandığımız “time.h” kütüphanesi “srand()” ve “rand()” fonksiyonlarını da bu örneğimizde kullanacağız. Bundan dolayı “time.h” kütüphanemizi örneğimize dahil edelim ve ardından “srand()” fonksiyonumuz ile başlangıç değerimizi belirtelim.

Her bir karakter için ayrı ayrı bir değer oluşturmamız gerektiği için belirlediğimiz karakter sayısı kadar dönen bir while döngüsü kuralım.

While döngüsünün dışına “belirlenenKarakter” adında bir değişken oluşturalım. Bu değişken döngü her döndüğünde rastgele olarak belirlenen karakteri tutacaktır.

srand(time(NULL));
char belirlenenKarakter = '-';
int sayac = 0;
while(sayac != karakterSayisi)
{
     //Rastgele seçim işlemleri
     sayac++
}

Artık karakter sayısı kadar dönüş yapan bir while döngüsü oluşturduk. Her bir karakterin nasıl seçileceğini belirtebiliriz.

Bizim en başta belirtmiş olduğumuz 4 farklı dizi vardı (büyük harf, küçük harf, rakam ve sembol). Bunlar arasından rastgele bir seçim yapmamız ve bu seçimi bir değişkende tutmamız gerekiyor. Bu işlem için “secim” adında bir integer değer oluşturalım ve bu değişkene rastgele 0-4 arasında bir sayı seçimi yapmasını isteyelim.

srand(time(NULL));
char belirlenenKarakter = '-';
int sayac = 0;
while(sayac != karakterSayisi)
{
        int secim = rand() % 4;
        sayac++;
}

Evet artık rastgele 0 ile 4 aralığında bir seçim yaptık.

Peki bu bizim ne işimize yarayacak ? Biz bu seçim ile karakter tipini belirtmiş olacağız.

  • 0 : Büyük harf seçimi
  • 1: Küçük harf seçimi
  • 2: Rakam seçimi
  • 3: Sembol seçimi

şeklinde bir yapı kuracağız. Bu yapıyı kurmak için “switch case” yapısını kullanacağız. Hemen yapımızı kuralım.

     srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            //Buyuk Harf Sec
            break;
        case 1:
            //Kucuk Harf Sec
            break;
        case 2:
            //Rakam Sec
            break;
        case 3:
            //Sembol Sec
            break;
        }

    sayac++;
    }

Switch case yapımız da kurulduğuna göre rastgele seçimler yapabiliriz. Bu seçimlerimizi de “belirlenenKarakter” değişkenini aktararak hafızada tutabiliriz.

 srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            belirlenenKarakter = buyukAlfabe[rand() % 26];
            break;
        case 1:
            belirlenenKarakter = kucukAlfabe[rand() % 26];
            break;
        case 2:
            belirlenenKarakter = rakam[rand() % 10];
            break;
        case 3:
            belirlenenKarakter = sekil[rand() % 13];
            break;
        }
    sayac++;
    }

Döngümüz her döndüğünde rastgele bir karakter üretebiliyor artık tek yapmamız gereken bu karakteri ekrana yazmak. While döngüsünün sonuna oluşan değeri çıktı olarak eklersek eğer başarılı bir şekilde şifremizi oluşturuyor olacağız.

    srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            belirlenenKarakter = buyukAlfabe[rand() % 26];
            break;
        case 1:
            belirlenenKarakter = kucukAlfabe[rand() % 26];
            break;
        case 2:
            belirlenenKarakter = rakam[rand() % 10];
            break;
        case 3:
            belirlenenKarakter = sekil[rand() % 13];
            break;
        }
    printf("%c",belirlenenKarakter);
    sayac++;
    }

Artık rastgele şifre üretme örneğimizin ilk parçasının sonuna geldik. İkinci parçasında bu işlemi bir fonksiyon haline getireceğiz ve kullanıcın talep ettiği özelliklerde (Sadece harf , sadece sayı, sembol ve sayı, vs…) şifreler oluşturacağız. Yazımızı bitirmeden önce tüm kodları ve ardından ekran çıktısını eklemek isterim.


Tüm Kodlar

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
#include "time.h"
int main()
{
    char buyukAlfabe[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
    char kucukAlfabe[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    char rakam[10] = {'0','1','2','3','4','5','6','7','8','9'};
    char sekil[13] = {'!','+','-','?','*','_','/','@','\'','}','{',',','\/'};

   printf("Kac karakterli bir sifre olusturmak istiyorsunuz ? \n");
    int karakterSayisi = 1;
    scanf("%d",&karakterSayisi);
    
    srand(time(NULL));
    char belirlenenKarakter = '-';
    int sayac = 0;
    while(sayac != karakterSayisi)
    {
        int secim = rand() % 4;
        switch(secim)
        {
        case 0:
            belirlenenKarakter = buyukAlfabe[rand() % 26];
            break;
        case 1:
            belirlenenKarakter = kucukAlfabe[rand() % 26];
            break;
        case 2:
            belirlenenKarakter = rakam[rand() % 10];
            break;
        case 3:
            belirlenenKarakter = sekil[rand() % 13];
            break;
        }
    printf("%c",belirlenenKarakter);
    sayac++;
    }
    return 0;
}

Rastgele şifre üretme – 1 örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim..

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Palindromik Sayıları Bulma

Palindromik sayıları bulma.
C programlama dilini kullanarak 0 ile 1.000 arasındaki tüm palindromik sayıları tespit edilmesi.

Merhaba arkadaşlar,

Bu yazımızda sizlerle birlikte C programlama dilini ve CodeBlocks derleyicisini kullanarak 0 ile 1.000 arasındaki tüm palindromik kuralına uyan sayıları bulmaya çalışacağız. Örneğimizi kodlamaya geçmeden önce Palidromik sayılarla ilgili kısaca bilgi vermek istiyorum.

Okumaya devam et “Palindromik Sayıları Bulma”