PHP ile API Oluşturma

PHP İLE API OLUŞTURMA

class.Article.php Tüm Kodlar

<?php
require_once 'database.php';
class Article
{
	private $conn;
	public function __construct() {
		$conn= new Database();
		$this->conn = $conn->connect();
	}
	function getAll()
	{
		
		$statement = $this->conn->prepare("SELECT * FROM article");
		$statement->execute();
		$results = $statement->fetchAll(PDO::FETCH_ASSOC);
		$json = json_encode($results);
		return $json;
	}
	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;
	}
	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;
	}
	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;
	}
	
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;
	}
	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;
	}
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;
}
}

Kodları alt alta birleştirebilirsiniz. Belirli bir sınır olduğu için tamamını bir kerede ekleyemiyorum.


.htaccess

.htaccess Apache başta olmak üzere çoğu ağ sunucusu tarafından kullanılan web alanı üzerinde ayar değişimleri yapılmasını sağlayan dosyadır. Biz bu dosya sayesinde apimiz için uygun linkler üretebileceğiz.

URL kısmına gelen parametremiz dosya veya klasör değilse index.php üzerinden GET parametre olarak göndermesini istiyoruz. Artık GET metotlarını daha düzgün görüntüleyebileceğiz.

.htaccess den önce

……./index.php?slag=deneme-yazi

.htaccess den sonra

……./slag/deneme-yazi

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L]

Devamını okuma için lütfen diğer sayfaya geçiniz..

Yayımlayan

3 Replies to “PHP İLE API OLUŞTURMA

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir