PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

PHP Redis Form Veri Depolama ve Alma İşlemi

 PHP Redis Form Veri Depolama ve Alma İşlemi


Redis: GET, SET

<?php
try{
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->auth('mypassword');

if(isset($_POST['name'])){
$redis->set('name', $_POST['name']);
}
}
catch (Exception $e){
echo $e->getMessage();
}
?>
<html>
<head></head>
<body>
<strong>Basit Form</strong>
<br>
<form action="php_form_redis.php" method="post">
<input type="text" name="name">
<input type="submit" value="Kaydet">
</form>
<br>
<?php
echo 'redis database okunan değer:'. $redis->get('name');
?>
</body>
</html>

PHP Redis Son Kullanma Tarihi ve Kalıcılığı Yönetme

 PHP Redis Son Kullanma Tarihi ve Kalıcılığı Yönetme


Redis: EXPIRE, EXPIREAT, TTL, PERSIST

<?php
try{
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->auth('mypassword');

$key = "expire in 1 hour";
$redis->set($key, "test value");

$redis->expire($key, 3600); //silinme zamanı 1 saat olarak ayarlanır.

$redis->expireat($key, 1723043722); //silinme zamanı Unix Timestamp olarak ayarlanır.

print_r($redis->ttl($key)); //saniye cinsinden expire olmak için kalan süresini gösterir.

$redis->persist($key); //expire date üstündeki zamanı kaldırır ve kalıcı olarak key silinmeden durur.
}
catch (Exception $e){
echo $e->getMessage();
}
?>

PHP Redis Sıralı Küme "Array" Komutları

  PHP Redis Sıralı Küme "Array" KomutlarıSıralı Veri Yapıları için Güçlü İşlemler



Redis: ZADD, ZCARD, ZCOUNT, ZREM, ZRANGE, ZRANK, ZREVRANK, ZSCORE, ZRANGEBYSCORE

<?php
try{
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->auth('mypassword');

$key = "Languages12";
// zadd :sıralanmış bir kümeye bir veya birden fazla puan ekleyerek günceller.
$redis->zadd("sorted_set:{$key}",1,"PHP");
$redis->zadd("sorted_set:{$key}",2,"C#");
$redis->zadd("sorted_set:{$key}",3,"JAVA");

print_r($redis->zcard("sorted_set:{$key}")); //3 toplam kümede kaç eleman sayısını verir
echo "<br>";

print_r($redis->zcount("sorted_set:{$key}",1,2)); //2 toplam kaç küme index i var 0,1,2
echo "<br>";

$redis->zrem("sorted_set:Languages","JAVA");// belirtilen küme elmanıı kümeden kaldırır.
echo "<br>";

print_r($redis->zrange("sorted_set:{$key}",0,-1,"withscores"));//küme içindeki index ve değerleri gösterir.
echo "<br>";

print_r($redis->zrank("sorted_set:{$key}","C#")); //1 değerin kaçıncı indexe geldiğini söyler.
echo "<br>";
print_r($redis->zrange("sorted_set:{$key}",0,-1,"withscores")); // Puana göre artan şekilde sıralar.

print_r($redis->zrevrank("sorted_set:{$key}","C#")); //0 [0 based index] Bir oyuncunun puanı büyükten küçükten doğru sıralanınca rank değerini döndürür.
echo "<br>";

print_r($redis->zscore("sorted_set:{$key}","C#")); //2 Belirli bir oyuncunun puanını döndürür
echo "<br>";

print_r($redis->zrangebyscore("sorted_set:{$key}",1,2, array("withscores"=>true)));
}
catch (Exception $e){
echo $e->getMessage();
}
?>

PHP Redis Kümelerle "Array" Çalışma

 PHP  Redis Kümelerle "Array" Çalışma, Verimli Veri İşleme ve Küme İşlemleri



Redis: SADD, SADDARRAY, SMEMBERS, SREM, SISMEMBER, SISMEMBERS

<?php
try{
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->auth('mypassword');

$key = "Languages12";

$redis->sadd($key,'PHP');//atama işlemi
$redis->sAddArray($key,['C#','Ruby','Java']);
$redis->sadd($key,'PHP');// aynı değerden var ise bunu tekrar eklemicektir.
print_r($redis->smembers($key)); // Array ( [0] => Java [1] => PHP [2] => Array [3] => C#2 [4] => C# [5] => Ruby )
echo "<br>";

$redis->srem($key,'C#');// bir değeri kaldırmak için kullanılır
print_r($redis->smembers($key)); // Array ( [0] => Java [1] => PHP [2] => Ruby )
echo "<br>";

var_dump($redis->sismember($key,'C#')); // false
echo "<br>";

print_r($redis->smembers($key)); // Array ( [0] => Java [1] => PHP [2] => Ruby )
echo "<br>";
}
catch (Exception $e){
echo $e->getMessage();
}
?>

PHP Redis Hash Komutları

 PHP Redis Hash Komutları


Redis: HSET, HINCRBY, HMSET, HGETALL 

<?php
try{
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->auth('mypassword');

$key = "Ali Veli";

$redis->hSet($key,'age',35);//hash key'ine, key value ata
$redis->hSet($key,'country','Turkey');
$redis->hSet($key,'occupation','Software Engineer');
$redis->hSet($key,'deleted',0);

echo $redis->hget($key,'age'); //35
echo "<br>";

echo $redis->hget($key,'country'); //Turkey
echo "<br>";

$redis->del($key,'deleted'); //deleted olan key siler.

$redis->hincrBy($key,'age',10); //45 //integer değeri 10 arttır

//toplu atama
$redis->hmset($key,[
'age' => 35,
'country' => 'Turkey',
'occupation' => 'Software Engineer',
]);

$data = $redis->hGetAll($key);
print_r($data);
}
catch (Exception $e){
echo $e->getMessage();
}
?>

PHP Redis Listeleri Düzenleme

 PHP Redis Listeleri Düzenleme, Verimli Veri İşleme


Redis: DEL, RPUSH, LPUSH, LPOP, RPOP,LLEN, LRANGE

<?php
try{
$redis = new Redis();
$redis->connect('redis');
$redis->auth('mypassword');
$redis->incr("counter");
echo "counter :".$redis->get("counter")."<br>";
#if(fmod($redis->get("counter"),5) == 0){// eğer counter 5 tam bölünür ise languages sıfırla "sil"
$redis->del("languages");
# $redis->set("counter",0);
#}

$redis->rpush("languages","c#"); //[c#] listenin sağına "sonuna" olarak değer ekler
$redis->rpush("languages","PHP"); //[c#, PHP]

$redis->lpush("languages","Python"); //[Python, c#, PHP] listenin soluna "başına" olarak değer ekler
$redis->lpush("languages","Java"); //[Java, Python, c#, PHP]

echo $redis->lpop("languages"); // [Python, c#, PHP] listenin soluna "başında" olan değeri siler ve silinen değeri döner.
echo "<br>";

echo $redis->rpop("languages"); // [Python, c#] listenin sağına "sonuna" olan değeri siler ve silinen değeri döner.
echo "<br>";

echo $redis->llen("languages"); //2 listemizin içindeki değerlerin toplamını verir
echo "<br>";

print_r($redis->lrange("languages",0,-1));// tüm değerleri gösterir.
echo "<br>";

print_r($redis->lrange("languages",0,0));// ilk değeri gösterir
echo "<br>";
}
catch (Exception $e){
echo $e->getMessage();
}
?>

PHP Redis Artırma ve Azaltma

 PHP Redis Artırma ve Azaltma Komutları: Sayısal Değerleri Verimli Şekilde İşleme



Redis: COUNTER, INCR, DECR, INCRBY, DECRBY

<?php
try{
$redis = new Redis();
$redis->connect('redis');
$redis->auth('mypassword');

$redis->set("counter",0);

$redis->incr("counter");//1 incr artırma komutu
$counter = $redis->get("counter");
echo "counter value: ".$counter."<br>";

$redis->incr("counter");//2 incr artırma komutu
$counter = $redis->get("counter");
echo "counter value: ".$counter."<br>";

$redis->decr("counter");//1 decr azaltma komutu
$counter = $redis->get("counter");
echo "counter value: ".$counter."<br>";

$redis->incrby("counter",15);//16 incrby artırmak istedğimiz değer kadar artırır komutu
$counter = $redis->get("counter");
echo "counter value: ".$counter."<br>";

$redis->incrby("counter",5);//21 incrby artırmak istedğimiz değer kadar artırır komutu
$counter = $redis->get("counter");
echo "counter value: ".$counter."<br>";

$redis->decrby("counter",10);//11 decrby azaltmak istedğimiz değeri kadar azaltır komutu
$counter = $redis->get("counter");
echo "counter value: ".$counter."<br>";
}
catch (Exception $e){
echo $e->getMessage();
}
?>

PHP Redis Veri Deploma, Veri Doğrulama

 PHP Redis Veri Deploma, Veri Doğrulama


Redis: SET, GET, EXISTS

<?php
try{
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->auth('mypassword');

$redis->set("user_name", "ali_veli"); //atama işlemi

if($redis->exists('user_name')){ //böyle bir değer varmı
echo "get key user_name to value :" .$redis->get("user_name"); //getir
}
}
catch (Exception $e){
echo $e->getMessage();
}
?>

Serialize ve Unserialize PHP

Serialize ve Unserialize  PHP

serialize — bir array  verisinin saklanabilir olarak string'e çevirip verir.

unserialize — serialize olmuş bir değeri tekrar eski array türüne çevirmek için kullanılır.

<?php
$data = serialize(array("Red", "Green", "Blue"));

echo $data . "<br>";
#a:3:{i:0;s:3:"Red";i:1;s:5:"Green";i:2;s:4:"Blue";}
$test = unserialize($data);
var_dump($test);
#array(3) { [0]=> string(3) "Red" [1]=> string(5) "Green"
# [2]=> string(4) "Blue" }
?>

Örnek Exception Throw PHP

 PHP Örnek Exception Throw 


Php ile örnek throw komutu ,Exception sınıfını miras alarak istediğimiz hata sınıfı oluşturabilir ve catch blogu içerisinde bu hataları daha detaylı gösterebilir ve özelleştirebiliriz. 

<?php
class customException extends Exception{ }

class fruit
{
public function test()
{
if ('a' == 'b') {
throw new customException("error: denk değildir");
} else {
return true;
}
}
}

try {
$a = new fruit();
echo $a->test();
}
catch (customException $e){
print_r($e->getMessage());
}

SoapClient WSA Action To Hatası Çözümü PHP

Php SoapClient WSA Action To Hatası

Hata mesajı:
errors:

1) The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher.  Check that the sender and receiver's EndpointAddresses agree.

2) The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/SoapService/login'

Php ile bir başka servise soap isteği atıldığında aşağıdaki gibi bir hata alınıyor ise soap header da action ve to parametreleri eklenerek soap servisin yollu belirtilmelidir. daha sonra soap servis methoduna istek atıldığında headerBody de birleştirilip gönderilmeldir.


<?php
ini_set("soap.wsdl_cache_enabled","0");
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


$url = 'http://test.com/SoapService.svc?wsdl';//change
$client = new SoapClient($url,array('soap_version' => SOAP_1_2,
'trace' => 1,'exceptions'=> false));

$wsa_namespace = 'http://www.w3.org/2005/08/addressing';
$NS_ADDR = 'http://www.w3.org/2005/08/addressing';
$ACTION_ISSUE = 'http://tempuri.org/SoapService/login';//change
$ACTION_ADDR = 'http://test.com/SoapService.svc';//change

$action = new SoapHeader($NS_ADDR, 'Action', $ACTION_ISSUE, true);
$to = new SoapHeader($NS_ADDR, 'To', $ACTION_ADDR, false);

$headerbody = array('Action' => $action,'To' => $to);
$client->__setSoapHeaders($headerbody);

$parameters = array('username'=>'abc','password'=>'123');//change
$result = $client->__soapCall('login',$parameters);//change

echo '<pre>';print_r($result);exit();


soapUI 

ilgili method açılarak  alt menuden WS-A menusu açılır ve görseldeki görüntü gelir.

action ve to daki alanlar soap servisin url ile doldurulur.

action: http://tempuri.org/SoapService/login

to: soap-servis-url/SoapService.svc




Yararlı Kodlar 2 PHP

     Yararlı Kodlar 2


PHP de bilinmesi gereken yararlı kodlar.

function_exists:proje içinde fonksiyon varmı, yokmu kontrol eden kod
class_exists:Class varmı yokmu kontrol eden kod
method_exists:Class içinde method varmı yokmu kontrol eden kod
property_exists:Class içinde property varmı yokmu kontrol eden komut
is_subclass_of:Class 'ın içinde miras alınan bir class varmı yokmu kontrol eden komut'
interface_exists:interface varmı yokmu kontrol eden komut
trait_exists:trait varmı yokmu kontrol eden komut
is_a:değişken hangi class 'dan türüdüğünü kontrol etmek için kulanılan kod
extension_loaded:Varolan eklentileri kontrol etmek için kullanılır.

Yararlı Kodlar 1 PHP

Yararlı Kodlar 1


PHP de bilinmesi gereken yararlı kodlar.


defined:sabitin var olup olmadıgını kontrol eder.
isset:değişken varsa true döner
empty:değişken null ise true döner
is_double:bir değişkenin double türünde olup olmadığını kontrol eder
is_float:bir değişkenin float türünde olup olmadığını kontrol eder
is_real:bir değişkenin float türünde olup olmadığını kontrol eder
is_int:bir değişkenin tamsayı türünde olup olmadığını kontrol eder
is_integer:bir değişkenin tamsayı türünde olup olmadığını kontrol eder
is_long:bir değişkenin is_long türünde olup olmadığını kontrol eder
is_null:bir değişkenin null türünde olup olmadığını kontrol eder
is_numeric:bir değişkenin sayı mı yoksa sayısal bir dize mi oldugunu kontrol eder
is_iterable:bir değişkenin içieriğinin yinelenebilir bir değer olup olmadıgı kontrol eder
is_obcejt:bir değişkenin bir nesne olup olmadıgına bakar
is_scalar:birdeğişkenin skaler olup olmadıgına bakar.
is_string:bir değişkenin string türünde olup olmadıgına bakar.

Değişken İşleme Methodları PHP

 Değişken İşleme Methodları PHP


is_array, is_bool, is_callable,is_countable, is_double, is_float is_int, is_integer, is_iterable
is_long, is_null, is_numeric, is_object, is_real, is_resource is_scalar, is_string



Magic Methods PHP

 Php sihirli methodlar



 __construct ,__destruct ,__call ,__callStatic ,__get ,__set ,__isset ,__unset ,__sleep ,__wakeup ,__toString ,__invoke ,__clone ,sumClone ,__debugInfo ,__set_state



<?php
require_once "Eductaion.php";
use magic_method\education\Eductaion;

$student = new Eductaion();//__construct,__destruct örnek

$student->message();//__call örnek

magic_method\education\Eductaion::List();//__callStatic örnek

echo $student->tckn; //__get örnek


$student->vkn =12345; //__set örnek

isset($student->tckn);//__isset örnek
empty($student->vkn);//__isset örnek


unset($student->vkn);//__unset örnek

/*
$result = serialize($student);//__sleep örnek

unserialize($result);//__wakeup örnek


echo $student;//__toString örnek

Eductaion('abc');//__invoke örnek
*/

$student1 = clone $student;//__clone örnek
$student2 = clone $student;//__clone örnek
$student->sumClone();//__clone örnek


var_dump($student);




<?php
namespace magic_method\education;
class Eductaion{

private $tckn;
private static $number = 0;

/**
Class çağrıldığında ilk çağrılan method
*/
function __construct(){
echo "Nesne belleğe yüklendi <br>";
}

/**
Class çağrıldığında sonra işlem sonunda çağrılan sınıf
*/
function __destruct(){
echo "Nesne bellekten silindi <br>";
}

/**
eğer muvcut class da var olmayan bir method çağrıldığında
dönmesini istediğimiz response bu __call methodu döner.
*/
function __call($name,$per){
echo $name." methodu bu sınıfta mevcut değil<br>";
}

/**
__callStatic Nesne içinde var olmayan bir static method çağrıldığında. çalışan method.
*/
public static function __callStatic($name,$per){
echo $name." methodu bu sınıfta mevcut değil<br>";
}

/**
__get Nesne içinde var olmayan veya erişim izni olmayan bir proertye erişilmeye çalıştığında çalışır.
*/
public function __get($name){
echo $name." bu property erililmiyor veya bulunamadı<br>";
}

/**
__set Nesne içinde var olmayan veya erişim izni olmayan bir proertye değer atamaya çalıştığında çalışır.
*/
public function __set($name,$val){
echo $name." bu property erililmiyor veya bulunamadı".$val." değeri atanamaz<br>";
}

/**
__isset Nesne içinde var olmayan veya erişim izni olmayan bir proertye isset veya empty ile çağrıldığında çalışır.
*/
public function __isset($name){
echo $name." isimli property bulunmuyor veya erilmiyor. bu yüzden isset veya empty func ile sınayamazsınız<br>";
}

/**
__unset Nesne içinde var olmayan veya erişim izni olmayan bir proertye __unset foncksiyonu ile yok edilmeye çalışıldığında çalışır.
*/
public function __unset($name){
echo $name." isimli property bulunmuyor veya erilmiyor. bu yüzden unset func ile sınayamazsınız<br>";
}

/**
__sleep Nesneye serialize çalışıldığında çalışır.
*/
public function __sleep(){
echo " Nesne dizi haline getiriliyor<br>";
}

/**
__wakeup Nesneye unserialize çalışıldığında çalışır.
*/
public function __wakeup(){
echo "dizi nesne haline getiriliyor<br>";
}

/**
__toString çalışıldığında Nesne yazdırlmaya çalışıldığında çalışır.
*/
public function __toString(){
echo "Nesne yazdırlmaya çalışıldı<br>";
}

/**
__invoke Nesne fonksiyon gibi çalıştırıldığında çalışır.
*/
public function __invoke(){
echo "Nesne fonksiyon gibi çalıştırıldığında döner.<br>";
}

/**
__clone Nesne klonlandığında çalışır .
*/
public function __clone(){
self::$number++;
}
public function sumClone(){
echo "Toplam clonle sayısı:".self::$number."<br>";
}

/**
__debugInfo Nesne var_dump methodu uygulandığında çalışır .
*/
public function __debugInfo(){
echo "Nesneye var_dump uygulandı<br>";
}

/**
__debugInfo Nesne var_export methodu uygulandığında çalışır .
*/
//public function __set_state(){}
}

Nesne Kopyalama Clone PHP

 PHP ile Nesne Kopyalama


Clone ile nesneyi kopyalıp her iki değişkende de iki farklı nesne gibi ilerliyor.
Clone kullanmaz ise tek nesnede her iki değişken aynı özellikleri taşır ve gösterir.
<?php
namespace nese_kopyalama\education;

class student{

public $name;
public $lastname;

function __construct($firtName,$lastname)
{
$this->name = $firtName;
$this->lastname = $lastname;
}

public function studentInfo(){
return $this->name .' '.$this->lastname;
}
}


require_once "nesne_kopyalama.php";

$student = new nese_kopyalama\education\student("ali","veli");

$newStudent = clone $student;

$newStudent->name = "can";
$newStudent->lastname = "cam";

echo $student->studentInfo();
echo '<br>';
echo $newStudent->studentInfo();