5 Ekim 2017 Perşembe

Uglifyjs Kullanımı

Uglifyjs bir javascript dosyalarını küçültmek(minify), güzelleştirmek(beautifier ) ve pars(parser) etmek için kullanılan bir araç kitidir. Sitenizin daha hızlı açılması için javascript dosyalarını küçültmede kullanılır.


Nasıl Kurulur?

Uglifyjs kurmak için bilgisayarınızda node.js kurulu olması gerekmektedir. Node.js kurulumu için: https://nodejs.org/en/

Node.js'yi kurduktan sonra node.js konsol ekranını açınız ve aşağıdaki kodu yazın:

npm install uglify-js -g

Javascript dosyasını minify(küçültmek) için:

uglifyjs --compress --mangle --output {filename}.js -- {filename}.min.js 

Not:  Yukarıdaki kodu çalıştırdığınızda {filename}.min.js dosyasını kendisi oluşturmuyor. Sizin oluşturmanız gerekiyor.





3 Aralık 2013 Salı

Javascript Browser Selector

Bu derste html tagına browser, işletim sistemi özelliklerinin classını yazdıracağız. Html tagına  browser ve işletim sistemi class ı ekleyerek tarayıcı farklılıklarını css ile önleyebiliriz.


var App: {
     detectBrowser: function() {
        function css_browser_selector(n) {
            var b = n.toLowerCase(),
                    f = function(c) {
                        return b.indexOf(c) > -1;
                    },
                    h = "gecko",
                    k = "webkit",
                    p = "safari",
                    j = "chrome",
                    d = "opera",
                    e = "mobile",
                    l = 0,
                    a = window.devicePixelRatio ? (window.devicePixelRatio + "").replace(".", "_") : "1";
            var i = [(!(/opera|webtv/.test(b)) && /msie\s(\d+)/.test(b) && (l = RegExp.$1 * 1)) ? ("ie ie" + l + ((l == 6 || l == 7) ? " ie67 ie678 ie6789" : (l == 8) ? " ie678 ie6789" : (l == 9) ? " ie6789 ie9m" : (l > 9) ? " ie9m" : "")) : (/trident\/\d+.*?;\s*rv:(\d+)\.(\d+)\)/.test(b) && (l = [RegExp.$1, RegExp.$2])) ? "ie ie" + l[0] + " ie" + l[0] + "_" + l[1] + " ie9m" : (/firefox\/(\d+)\.(\d+)/.test(b) && (re = RegExp)) ? h + " ff ff" + re.$1 + " ff" + re.$1 + "_" + re.$2 : f("gecko/") ? h : f(d) ? d + (/version\/(\d+)/.test(b) ? " " + d + RegExp.$1 : (/opera(\s|\/)(\d+)/.test(b) ? " " + d + RegExp.$2 : "")) : f("konqueror") ? "konqueror" : f("blackberry") ? e + " blackberry" : (f(j) || f("crios")) ? k + " " + j : f("iron") ? k + " iron" : !f("cpu os") && f("applewebkit/") ? k + " " + p : f("mozilla/") ? h : "", f("android") ? e + " android" : "", f("tablet") ? "tablet" : "", f("j2me") ? e + " j2me" : f("ipad; u; cpu os") ? e + " chrome android tablet" : f("ipad;u;cpu os") ? e + " chromedef android tablet" : f("iphone") ? e + " ios iphone" : f("ipod") ? e + " ios ipod" : f("ipad") ? e + " ios ipad tablet" : f("mac") ? "mac" : f("darwin") ? "mac" : f("webtv") ? "webtv" : f("win") ? "win" + (f("windows nt 6.0") ? " vista" : "") : f("freebsd") ? "freebsd" : (f("x11") || f("linux")) ? "linux" : "", (a != "1") ? " retina ratio" + a : "", "js portrait"].join(" ");
            if (window.jQuery && !window.jQuery.browser) {
                window.jQuery.browser = l ? {
                    msie: 1,
                    version: l
                } : {};
            }
            return i;
        }
        (function(j, b) {
            var c = css_browser_selector(navigator.userAgent);
            var g = j.documentElement;
            g.className += " " + c;
            var a = c.replace(/^\s*|\s*$/g, "").split(/ +/);
            b.CSSBS = 1;
            for (var f = 0; f < a.length; f++) {
                b["CSSBS_" + a[f]] = 1;
            }
            var e = function(d) {
                return j.documentElement[d] || j.body[d];
            };
            if (b.jQuery) {
                (function(q) {
                    var h = "portrait",
                            k = "landscape";
                    var i = "smartnarrow",
                            u = "smartwide",
                            x = "tabletnarrow",
                            r = "tabletwide",
                            w = i + " " + u + " " + x + " " + r + " pc";
                    var v = q(g);
                    var s = 0,
                            o = 0;
                    function d() {
                        if (s != 0) {
                            return;
                        }
                        try {
                            var l = e("clientWidth"),
                                    p = e("clientHeight");
                            if (l > p) {
                                v.removeClass(h).addClass(k);
                            } else {
                                v.removeClass(k).addClass(h);
                            }
                            if (l == o) {
                                return;
                            }
                            o = l;
                        } catch (m) {
                        }
                        s = setTimeout(n, 100);
                    }
                    function n() {
                        try {
                            v.removeClass(w);
                            v.addClass((o <= 360) ? i : (o <= 640) ? u : (o <= 768) ? x : (o <= 1024) ? r : "pc");
                        } catch (l) {
                        }
                        s = 0;
                    }
                    if (b.CSSBS_ie) {
                        setInterval(d, 1000);
                    } else {
                        q(b).on("resize orientationchange", d).trigger("resize");
                    }
                })(b.jQuery);
            }
        })(document, window);

    }
};

App.detectBrowser();

19 Haziran 2013 Çarşamba

MongoDB de PHP ile Kayıt Listeleme

merhaba. Önceki derste mongolab a kayıt ekleme işlemi yapmıştık.

Şimdi ise tüm kayıtları listeleyeceğiz.


Liste fonksiyonu:

function listItem($collection) {
       $cursor = $collection->find();
       return $cursor;
 }



list.php sayfası:

if($_REQUEST) {
   
    include "db.php";
   
    $db = new DB();
    $collection = $db->connectDB();
    $array = $db->listItem($collection);
   
    foreach ($array as $k => $v) {
      if(is_array($v)) {
        foreach ($v as $key => $val) {
            if(is_array($val)) {
                echo $key."<br />";
                foreach ($val as $kk => $vv) {
                    echo "&emsp;".$kk. ' : '. $vv.'<br />';
                }
            } else
          echo $key. ' : '. $val.'<br />';   
        }
      }
      else echo ' - - - - '. $k. ' - '. $v;
      echo "<br /><br />";
    }   
}



ve html sayfası:

<form action="list.php" method="post">
     <input type="submit" name="listele" value="Kayıtları Listele" />
</form>



4 Haziran 2013 Salı

MongoDB de PHP ile Kayıt Ekleme

Bir önce dersimizde mongolab.com dan bahsetmiştik ve veritabanı oluşturmuştuk.

Bu dersimizde ise PHP ile Mongolab.com da oluşturduğumuz MongoDB veritabanına  veri kaydedeceğiz.

Sayfaları oluşturmaya başlayabiliriz.

db.php sayfamız:

<?php

    class DB {
       
        private $dbusername =""; // Veritabanı kullanıcı adı
        private $dbpass = "";   // Veritabanı şifresi
        private $dbname = "";  // Veritabanı adı
        private $dbcollection= "";  // Collection adı
       
        function connectDB() {
            $url = "mongodb://".$this->dbusername.":".$this->dbpass."@ds027348.mongolab.com:27348/".$this->dbname;
            //echo $url;
            try {
                $conn = new Mongo($url);
                $dbbname = $conn->selectDB($this->dbname);
                $collection = $dbbname->selectCollection($this->dbcollection);
               
                return $collection;
            } catch(MongoConnectionException $e) {
                die ("Baglanti kurulamadi".$e->getMessage());
            }
        }
        

    // Ekleme Fonksiyonu
        function addItem(array $arr, $collection) {
            $result = $collection->insert($arr);
           
            if($result) {
                echo "Eklendi";
            } else {
                echo "bir sorun olustu";
            }
        }
    }
?>




Şimdi de form sayfasını hazırlayalım.

<form action="insert.php" method="post">
                   
                    <table>
                        <tr>
                            <td>Ad</td>
                            <td>:</td>
                            <td><input type="text" name="ad" /></td>
                        </tr>
                        <tr>
                            <td>Soyad</td>
                            <td>:</td>
                            <td><input type="text" name="soyad" /></td>
                        </tr>
                        <tr>
                            <td>Doğum Tarihi</td>
                            <td>:</td>
                            <td><input type="text" name="dogum_tarihi" /></td>
                        </tr>
                        <tr>
                            <td>Cinsiyet</td>
                            <td>:</td>
                            <td>
                                <input type="radio" name="cinsiyet" value="E" /> Erkek
                                <input type="radio" name="cinsiyet" value="K" /> Kadın
                                <input type="radio" name="cinsiyet" value="EC" /> Eşcinsel
                            </td>
                        </tr>
                        <tr>
                            <td>Ülke</td>
                            <td>:</td>
                            <td>
                                <select name="ulke">
                                    <option value="TR">Türkiye</option>
                                    <option value="DE">Almanya</option>
                                    <option value="FR">Fransa</option>
                                    <option value="CA">Kanada</option>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td>Hobiler</td>
                            <td>:</td>
                            <td>
                                <input type="checkbox" name="hobi[]" value="Yüzmek" /> Yüzmek
                                <input type="checkbox" name="hobi[]" value="Kitap okumak" /> Kitap Okumak
                                <input type="checkbox" name="hobi[]" value="Dans Etmek" /> Dans Etmek
                                <input type="checkbox" name="hobi[]" value="Gitar Çalmak" /> Gitar Çalmak
                            </td>
                        </tr>
                        <tr>
                            <td></td>
                            <td></td>
                            <td>
                                <input type="submit" name="kaydet" value="Kaydet" />
                            </td>
                        </tr>
                    </table>
                   
                </form>




ve insert.php sayfamız:

$ad= $_POST['ad'];
    $soyad= $_POST['soyad'];
    $dogum_tarihi= $_POST['dogum_tarihi'];
    $cinsiyet= $_POST['cinsiyet'];
    $ulke= $_POST['ulke'];
    $hobi = implode(",", $_POST['hobi']);
   
    $document = array ("names:" => array ( "first" => $ad, "soyad" => $soyad), "dogum_tarihi" => $dogum_tarihi, "cinsiyet" => $cinsiyet, "ulke" => $ulke, "hobi" => $hobi );

    include "db.php";
   
    $db = new DB();
   
    $collection = $db->connectDB();
      
    $db->addItem($document, $collection);












MongoLab Kullanımı

MongoLab, MongoDB veritabanı, otomatik yedekleme, web tabanlı araçları, 7/24 izleme, uzman desteği içeren ve tam yönetilen bulut veritabanı hizmetidir. Heroku kullanıcılar ürün geliştirme yerine faaliyetleri üzerinde dikkatini çekmek için ücretsizdir. 500 mb ücretsiz bir alan sağlamaktadır. Heroku kullanıcılar uygulamalarını bu alanda test edebilirler.


MongoDB Veritabanı Oluşturma

MongoLab kullanıcı oluşturup giriş yaptığınızda veritabanı eklemek için bir pencere geliyor. Buradan "Create New" i tıklıyoruz.







Gelen pencereden veritabanı ismi, barındırılacak yeri (ben amazon u seçtim. Diğerleri ücretsiz mi hiç denemedim.), paketlerden ücretsiz olanı (sandbox u) seçiyoruz.






Bunları seçtikten sonra veritabanı yetkisi için kullanıcı adı ve şifre kısımları oluyor. Onları da yazıyoruz ve "Create Database" butonuna basıldığında ücretsiz veritabanımız oluşturulmuş oluyor.








Veritabanımıza tıkladığımızda, veritabanı ile ilgili collection, kullanıcılar, durum, yedekleme, araçlar ve dış kaynaklardan bağlanmak için bağlantı adresleri çıkıyor.





Veritabanına dışarıdan bağlanmak için konsol ve url olmak üzere 2 farklı şekil var. Siz her ikisini de kullanabilirsiniz.


Yeni collection eklemek için "Add" butonuna tıklayınız.

Açılan popup dan adını yazıyorsunuz. Dilerseniz dosya boyutu da verebilirsiniz. Default 8 kb dır.



3 Haziran 2013 Pazartesi

XAMPP PHP ye MongoDB kurulumu


https://github.com/mongodb/mongo-php-driver/downloads

Buradan güncel sürümünü indiriniz. Ben php_mongo-1.3.2RC1.zip sürümünü indirmiştim.

İndirdiğiniz zip i açın ve  php_mongo-1.3.2RC1-5.4-vc9.dll dosyasını c:/xampp/php/ext  içine kopyalayın.

php.ini dosyasını açıp  extension=php_mongo-1.3.2RC1-5.4-vc9.dll satırını ekleyin.

Daha sonra apache servisini yeniden başlatın.

Localhostu çalıştırıp phpinfo() yu açtığınızda görünmesi gerekiyor.






Eğer görünmüyorsa farklı bir dll dosyası deneyiniz. Ben windows 7 64bit sürümünde denemiştim.

Test etmek için de;

- mongodb yi başlatın. 

- php dosyanızı şu şekilde ayarlayın.

<?php
   
    $connection = new Mongo();
   
    if($connection) {
        echo "baglandi";
    } else {
        echo "baglanilamadi!";
    }
   
?>



MongoDB - Delete İşlemleri

Delete() işleminin söz dilimi şu şekildedir.

db.collection.remove( <query>, <justOne> )

justOne: Argüman bool değer alır ve LIMIT 1 ile aynı etkiye sahiptir.


remove() metodunda  sorguda eşleşen tüm belgeleri siler.

Örnek: 

db.example.remove(
    {
        _id:1
    }
)



Eğer <justOne> değeri belirtirseniz, eşleşen koleksiyonda sadece bir kaydı siler.

Örnek: 

db.example.remove(
    {
        age:24
    },
    1
)



Eğer remove() metodunda <query> kullanmazsanız dökümanı siler.

Örnek: 

 db.example.remove()   // example dökümanı siliniyor..