وبلاگ فيکسل برای گرافيست ها
SharpLife وبلاگ شخصی مهدی تقی زاده
بازگشت شاهو طوفانی
اين صداگذاری و ميکس آخرشه!
نکته جالبی در مورد تابع output_add_rewrite_var
کاراکتر های فارسی در عکس توسط PHP
مصاحبه من با مجله وزین IranAMP
واژه های فناوری اطلاعات و برابر های پیشنهادی فرهنگستان
دوره های آموزش IT
استانداردهای کدنويسی PHP
| صفحه قبل


IranPHP
نماينده رسمي سايت PHP.net

webilix
منبعي براي برنامه نويسان PHP

phprun
وبلاگي خواندني براي تمام PHP كارها

ם تعداد بازديدكنندگان
كل: 924770
ديروز: 915
امروز: 820
ם تعداد كاربران آنلاين
6 نفر
ם پنج مراجعه آخر
msedjhtf.keep.pl
pulse.yahoo.com
mycharmme.hit.bg
elor678.cm.to
okpoyei.is.com
 
 
نسخه آزمايشی Zend Studio 3.5
Zend Studio 3.5 Zend از انتشار نسخه آزمايشی Zend Studio 3.5 خبر داد. Zend Studio محيط توسعه شناخته شده ای است که در جعبه ابزار هر PHP کار حرفه ای پيدا ميشه. این IDE، ابزار کاملی جهت ايجاد، ويرايش، تحليل و اشکالزدايی کدها و برنامه های به زبان PHP است. نسخه ۳.۵ شاهد پيشرفتهای خوبی است؛ از بهبود کارایی و قابليت استفاده گرفته تا پشتيبانی از ويژگيهای پيشرفته PHP 5 بعلاوه امکانات جديدی که نبود آنها احساس می شد، همه و همه در تکامل اين IDE کمک کرده اند. بنابراين ضمن صرفه جويی در زمان کدنويسی، مرحله خطايابی و نگهداری کدها هم به راحتی انجام می شود.
در اين نسخه واسط کاربری بازنويسی شده که شکل و شمايل جديدتری به آن داده و سرعت پاسخ اون هم بهتر شده است. سيستم کمک رسانی آنلاين هم برای اين نسخه بازنويسی شده است. با استفاده از SFTP می تونید با خيال راحت و مطمئن کدهاتون رو روی سرویس دهنده انتقال بديد. يکپارچگی بهتر اين IDE با CVS هم قابل توجه هست. ديباگر داخلی، تحليل گر کد و کامل سازی کد(Code Completion) کاملا از PHP 5.0 پشتيبانی می کنند. يه چيز جديد اضافه شده به نام Code templates که ترجمه کد الگو چيز قشنگی براش هست. ميشه يه سری تابع از پيش تعريف شده و متداول را به سرعت در برنامه های کاربردی به کار گرفت.
البته موارد ديگه ای هم وجود داره که می تونيد با مراجعه به سايت Zend اطلاعات بيشتری راجع به اونها کسب کنيد.
من شخصا Zend Studio را برای کدنويسی ترجيح می دهم. قابليت هايی که در اشکالزدايی کد در اختيار می گذاره اگه از Visual Studio بهتر نباشه، کمتر نيست. در هنگام ديباگينگ براحتی می تونيد با گذراندن ماوس بر روی متغيرها، مقاديرشون رو ببنيد. مقدار تمام SGAها قابل مشاهده است. منظور از SGA ها همون Super Global Arrays هستند مثل POST_
با Profiling و Code Analyzer اش خيلی حال می کنم و اين رو بگم که با اين دو امکان، ميشه کدهاتون رو تا حد خوبی بهينه کنيد و وقتی کدها رو از محيط توسعه به محيط Production منتقل می کنيد، با خطاهای زجر آور روبه رو نشيد. wink
Zend Studio در اصل از دو بسته نرم افزاری تشکيل شده است. اولی Zend Studio Client که يک IDE تمام عيار با ديباگر داخلی هست که براستی زمان توسعه را کوتاه و لذت بخش می کنه و ديگری Zend Studio Server هست که امکان اشکالزدايی از راه دور اپليکيشنهای PHP را در اختيار ما قرار ميده و بخوبی هم با نسخه کلاينت يکپارچه ميشه. با استفاده از Zend Server Centre که با نصب نسخه Server در شاخه DocumentRoot نصب ميشه، تمام دستورالعملهای پيکربندی PHP در محيطی کاربرپسند قابل تغيير هست و اون رو ميشه يک Front End مبتنی بر وب برای فايل php.ini در نظر گرفت. نسخه Server علاوه بر اين دارای Zend Optimizer هست که اجرای اسکريپتهای شما رو سرعت می بخشه و نسخه ای از آپاچی و PHP هم داخل اين بسته نرم افزاری هست که همراه با نصب نسخه Server قابل نصب هست. اگه آپاچی و PHP رو قبلا داشته باشيد، اين برنامه بخوبی با اونها يکپارچه ميشه. Zend Information Centre هم منبعی برای کسانی هست که عادت به خوندن مستندات برنامه ها دارند و می خواهند به نحو احسنت از امکانات یه نرم افزار بهره ببرند. با استفاده از File Management یا همون مدیریت فایل خودمون، خیلی راحت فایلهای پروژه اتون رو سازماندهی کنید.(مثلا یک پروژه بسازید، فایل به اون اضافه کنید، براحتی فایل Include کنید و ...) دیگه خدمتتون عرض کنم که اين استوديو مجهز، CVS توکار هم داره. (برای کسانیکه نمی دونن CVS چیه، نسخه کد باز SourceSafe رو تصور کنید) که در توسعه پروژه های SourceForge خيلی کمک می کنه. اين Project Inspector هم که ديگه نگو، راست کار خودمه. کسانيکه عادت به برنامه نويسی OO دارند و برای يک پروژه از کلاسهای متعددی استفاده می کنند، از اين ابزار برای مشاهده متدها و Property های کلاس های پروژه اتون می تونند استفاده کنند. هر کلاس و اعضای اون به صورت نمودار درختی نمايش داده ميشه که پيمايش اون کلاس رو راحت ميکنه. با آيکنهايی تفاوت اعضای کلاس نمايش داده ميشه. منظورم فرق بين Member Variable و Member Function هاست. اشکالزدايی يا همون Debugging هم دارای تمام امکاناتی است که IDE های خوب دارند. با استفاده از Breakpointها کدتون رو از خطی که می خواهيد به بعد ديباگ کنيد. امکان Watch که مقدار هر متغيری رو در زمان اجرا نمايش ميده. با استفاده از Zend Studio Toolbar خيلی راحت از خود مرورگر می تونيد اقدام به اشکال يابی کنيد که در این حالت از دیباگر داخلی استفاده نمیشه. برای این کار بايد نسخه Server روی سيستم نصب باشه. اين امکان باعث شده که من اسکریپت هام رو وقتی بعد از اشکاليابی، روی Server منتقل می کنم، بدون هيچ خطايی، کار کنند.
امکان ديگه اش که خيلی کار کدنويسی رو لذت بخش می کنه، امکان تطابق آکولادهاست. چند بار شده آکولاد باز کنيد تا يک بلوک کد بنويسيد و از دستتون در می ره که چند تا آکولاد باز شده داريد؟!! grin برای برنامه نويسانی که عشق کدهای تر و تميز و اطو کشيده هستند هم ويژگی حاشيه گذاری کدها يا Code Indenting باعث ميشه شما هم راضی بشيد.
سخن آخر:
اگه دنبال IDEهای ويزی ويگ(WYSIWYG) مثل Dreamweaver هستيد، Zend Studio به درد شما نمی خوره. در مورد سيستم مورد نيازش هم بگم متاسفانه نه اينکه با جاوا، Develop شده، شديدا حافظه خوره. يعنی من با ۱۲۸ مگ DDR باس ۲۶۶ با پردازنده Athlon 1.33Mhz، زجر ميکشم تا اجرا بشه. حالا اگه همزمان با اون، برنامه های ديگه ای اجرا بشوند، ديگه رسما ماوس سيستم در هر ثانيه، يک پيکسل جلو ميره! confused توصيه ميشه ۱۹۲ مگ رم رو داشته باشيد حداقل!
به هر حال امکاناتی که اين استوديو در خدمت ما قرار ميده، به زجرهای احتمالی می چربه! rolleyes
 
نظرات شما(76)  
MySQL و Stored Procedureها
Stored Procedures in MySQL 5.0 MySQL را می توان محبوبترين پايگاه داده کدباز جهان ناميد. اما علی رغم چنين محبوبيتی، بسياری از شرکتهای بزرگ از قبول آن سرباز می زنند. دلايل گوناگونی مزيد اين علت است؛ از تصورات نادرستی که پروژه های کدباز را بچه گانه تلقی می کنند گرفته، تا عقايدی نظير اينکه هيچ چيز مجانی، خوب نيست، همه و همه چنين مقاومتهايی را دامن می زند. اگرچه گله های غالبا بحقی از MySQL می شود؛ برای مثال MySQL برخلاف همتاهای اتيکت دار خود نظير اوراکل يا DB2، از Stored Procedureها پشتيبانی نمی کند.
MySQL در نسخه ۵ خود که هم اکنون در دست توسعه است، از Stored Procedureها پشتيبانی می کند.(در واقع PHP و MySQL هر دو در نسخه ۵، به بلوغ می رسند.) برای دوستانی که اطلاعی از Stored Procedureها ندارند، به طور مختصر عرض می کنم که Stored Procedureها مجموعه ای از فرامين SQL و منطق برنامه هستند که در سرويس دهنده بانک اطلاعاتی ذخيره می شوند. سپس اين Stored Procedureها توسط برنامه های کاربردی، فراخوانی می شوند و از اين رو برنامه نويسان را تا حدی از نوشتن SQL بی نياز می کند. Stored Procedureها اين امکان را فراهم می کنند تا اکثر منطق دسترسی به بانک از منطق خود برنامه کاربردی مجزا شود. يکی از مزايای غير مستقيم استفاده از Stored Procedureها، کوتاهتر و قابل فهم تر شدن کد برنامه کاربردی است. ديگر مزيت آن اينست که SQL می تواند Pre-Compile شده و از اين رو باعث افزايش سرعت برنامه کاربردی شود. از آنجا که Stored Procedureها حاوی منطق برنامه هستند، بيشتر پردازش در سمت سرويس دهنده بانک اطلاعاتی صورت می گيرد و بدين طريق در پهنای باندی که برای ارسال داده ها به برنامه کاربردی مصرف می شود، صرفه جويی به عمل می آيد. همچنين در هنگام پياده سازی برنامه های کاربردی چند لايه(n-tier)، از Stored Procedureها برای جداسازی لايه داده از لايه سرويس دهنده استفاده می شود.
امنیت از دیگر مزایای Stored Procedureهاست. می توان به برنامه های کاربردی مجوز اجرای Stored Procedureها را اعطا کرد در حاليکه مجوز دسترسی مستقيم به جدول(Table) را نداد. متاسفانه، در حال حاضر، MySQL از دستور GRANT EXECUTE پشتيبانی نمی کند. اين بدان معناست اگر برنامه کاربردی اجازه دسترسی به يک جدول را نداشته باشد، مجوز اجرای‌‌ Stored Procedure ای که به همان جدول دسترسی می يابد را هم نخواهد داشت. البته پياده سازی اين امکان در ليست انجام قرار دارد و در نسخه های بعدی، حتما لحاظ خواهد شد.
بر خلاف پايگاه های داده رابطه ای مايکروسافت و اوراکل که از سينتکس فعلی SQL:2003 برای Stored Procedureها تبعيت نمی کنند، MySQL و DB2 با این استاندارد، خود را تطبيق داده اند. از لحاظ تئوری، می توان گفت در صورتيکه ساختار بانک اطلاعاتی مشابه باشد، Stored Procedure ای که برای يکی از آنها نوشته می شود در ديگری هم قابل اجراست.
ولو اينکه هنوز پشتيبانی از Stored Procedure در MySQL در مراحل ابتدايی خود قرار دارد، بسياری از وظايف مورد نظر تکميل شده است. در ضمن، همانطور که در مستند Stored Procedure آمده است، پياده سازی آن در MySQL با PL/SQL اوراکل و T-SQL سرويس دهنده SQL مايکروسافت سازگاری خواهد داشت. نظر کلی من راجع به پشتیبانی از Stored Procedureها اينست که تکميل آن به کندی صورت می گيرد تا از اشتباهاتی که در چنين پروژه های بزرگ توسعه نرم افزار رخ می دهد، اجتناب شود.
باز هم لازم به يادآوری است که پشتيبانی از Stored Procedureها در نسخه در حال توسعه MySQL به خوبی و پختگی اوراکل، SQL Server و DB2 نيست. مهم اينست که همين تعداد امکانات کم بخوبی کار کنند تا اينکه دوجين امکانات معيوب به سيستم اضافه بشه. cool
 
نظرات شما(6)  
ASP.NET هم بد چيزی نيست!
ASP.NET فريم ورک دات نت چيست؟!
فريم ورک دات نت از دو قسمت اصلی تشکيل شده است:
۱) CLR (چیزی که کدها رو اجرا می کند)
۲) یک مجموعه سلسله مراتبی از Class Libraryها (توابع PHP و کتابخانه های PEAR رو یکم گسترش بدین و اونها رو تحت یک ساختار سلسله مراتبی تر و تمیز سازماندهی کنید میشه Class Library دات نت) از جمله این Class Libraryها می توان به ADO.NET (یک سیستم دسترسی به داده) و Windows Forms که کلاسهایی برای ساخت اپلیکیشنهای ویندوز است اشاره کرد.
CLR می تواند کدهایی را که به زبانهای مورد پذیرش دات نت نوشته می شوند، اجرا کند؛ در ضمن این کدها، تحت هر سیستم عاملی که نسخه ای از CLR را در اختیار داشته باشد، قابل اجراست. به عبارت دیگر، یه چیزی تو مایه های جاوا؛ با این تفاوت که لازم نیست کدها به زبان جاوا نوشته شوند و برنامه نویس در انتخاب زبان مختار است. Cool اِ‌ نه؟! razz
يک مثال: «The Web Forms Framework»
ASP.NET يه جور سيستم Templating داره که اصطلاحا Web Forms ناميده ميشه. اين مورد رو من اول از همه ذکر ميکنم، چون يکی از ويژگيهايی هست که در وهله اول باعث علاقه من به دات نت شد و تا اونجایی که من اطلاع دارم، مشابه PHP اون وجود نداره. برای مثال به کد HTML زير دقت کنيد:

<select id="ColorSelect" runat="server"> 
 <option>SkyBlue</option> 
 <option>LightGreen</option> 
 <option>Gainsboro</option> 
 <option>LemonChiffon</option> 
</select> 
<span id="Span1" runat="server">Some text.</span>

همونطور که می بينيد، کد بالا يه تکه کد HTML معمولی هست که فقط يه مشخصه (Attribute) به تگهای <span> و <select> اضافه شده است.("runat="server) حالا اگه بخواهيم گزينه يا Option ای به اين جعبه انتخاب(Select Box) اضافه کنيم، در هنگام کدنويسی ASP.NET، کد زير رو می نويسيم.(بدین صورت میشه کاملا اون رو از کد HTML مجزا کرد.)

ColorSelect.Items.Add('AzureBlue');

و برای دستکاری تگ <span> هم می نويسيم:

Span1.Style["background-color"] = "red"; 
Span1.InnerHTML = "Changed text!";

و نهايتا خروجی سيستم، کدی هست که ۱۰۰ درصد با XHTML همخوانی دارد.

<select id="ColorSelect"> 
 <option>SkyBlue</option> 
 <option>LightGreen</option> 
 <option>Gainsboro</option> 
 <option>LemonChiffon</option> 
         <option>AzureBlue</option> 
</select> 
<span style="background-color: red;">Changed text!</span>

علاوه بر جذابيتی که اين ويژگی دارد، شما بعنوان يک توسعه دهنده، همکاری لذت بخش تری با يک HTML/Designer که چيزی از برنامه نويسی نمی داند، خواهيد داشت. اين تنها نمونه کوچکی از قابليتهايی است که فريم ورک Web forms در اختيار ما قرار می دهد، اگر مايليد تا نمونه های ديگری را مشاهده کنيد، کافيست به GotDotNet سری بزنيد.
گفتيم که فريم ورک دات نت از زبانهای برنامه نويسی متعددی پشتيبانی می کند، به اين معنا که در حال حاضر(شاید هم آینده نزدیک) می توانيد برنامه های کاربردی دات نت را به زبانهای سی پلاس پلاس، سی شارپ، ويژوال بيسيک دات نت، جی اسکريپت دات نت، پايثان(Python)، پرل، جاوا(جی شارپ)، کوبول، ايفل و دلفی بنويسيد. شايد هم بزودی بتوانيد به زبان PHP هم در فريم ورک دات نت، کد بنويسيد! cool نکته جذاب ديگه، امکان ميکس کردن کدها هست. مثلا می تونيد يک آبجکت در #C از کلاسی نمونه گيری کنيد که با ++C يا VB.NET نوشته شده است. ببینيد اين چقدر زمان توسعه را کوتاهتر ميکنه. در زمينه محيط توسعه، مايکروسافت با انتشار Web Matrix که ابزار رايگانی برای توسعه اپليکيشنهای دات نت هست، برخی از محيط های توسعه ای که برای PHP نوشته شده است را ناکام گذارده است. اين ابزار دارای يک سرويس دهنده وب توکار به انضمام FTP، واسط مديريت بانک اطلاعاتی و ... است. فقط اين نيست! مايکروسافت با عرضه MSDE که ويرايش رايگانی از MS SQL server است، گامی ديگر در جهت عمومی سازی برداشته است. اين ابزار دقيقا تمام امکانات MS SQL server 2000 را دارا می باشد و هر اپليکيشنی که با MSDE نوشته شود، بخوبی با MS SQL Server هم کار می کند. مايکروسافت Visual Studio .NET هم برای حرفه ای ها عرضه کرده است که خصوصيات ديوانه کننده ای دارد:
» توليد خودکار گزارشها و نمودارها از بانک اطلاعاتی
» اشکالزدايی خط به خط کدها با امکان مشاهده تاثيرات و فرآيندهای اجرا
» انتساب مقدار موقتی به يک متغير در هنگام اجرا به منظور بررسی شرايط مختلف
» امکان مشاهده مقدار یک متغیر در هنگام ديباگينگ(اشکالزدایی) با گذراندن ماوس بر روی آن
ASP.NET بخشی از خود دات نت هست و اين چيزی هست که به سادگی ناديده گرفته می شود. اگر شما نحوه نوشتن برنامه های کاربردی دات نت را بدانيد، نحوه نوشتن برنامه های معمولی رو هم می دانيد و با صرف وقت بيشتری روی Windows Forms classes بجای Web Forms، حتی برنامه های کاربردی ويندوز را توسعه دهيد. در اين حوزه، PHP هم تا حدی حرفی برای گفتن دارد. PHP-GTK را می توان فريم ورکی برای توسعه Desktop App به زبان PHP دانست، اما هنوز به بلوغ دات نت نرسيده است و حالا حالا ها برای مقايسه با دات نت زمان می خواهد!
در حال حاضر، دات نت بسیار وابسته به پلت فرم ویندوز است و این خیلی بد هست، زیرا یکی از بزرگترین مزیت های PHP مستقل از محیط عملیاتی بودن یا بقولی Cross-Platform بودن اون هست. اما دات نت کاران اميد دارند که اين مسئله در سالهای آينده حل شود. چند وقت پيش، مايکروسافت Rotor را عرضه کرد که يک پياده سازی Shared Source ای از CLR و Class Library های ويژه غير ويندوزی برای ويندوز و BSD Unix بود که حاوی کدمنبع برای هر دوتای آنها بود. اولين باری که من اين رو شنيدم، باور نکردم، چون از مايکروسافت اين کارها دور از انتظار هست. اما هزینه Rotor آنقدرها هم کم نيست و در واقع از جنبه های بسياری مشابه همتاهای تجاری خود است.
علاوه بر این دات نت، دارای Platform Abstraction Layer قدرتمندی است که کار حمل به ساير سيستم های عامل را امری ممکن می سازد. همچنين، CLI و #C توسط ECMA استاندارد می شوند و پروژه Mono هم با پشتوانه Ximian در حال کار بر روی پياده سازی کد باز دات نت هستند. تمام اين شواهد حاکی از آن است که دات نت بالاخره مرز پلت فرمی را در هم می شکند. اما خوب دير و زود و سوخت و سوز هم داره!!
اما شما به حرفهای من تکيه نکنيد، خودتون طعم هر دو رو بچشيد، ببينيد کدوم بيشتر نيازهای شما رو برطرف ميکنه. من که خودم در حال حاضر برای توسعه وب بی برو و برگرد PHP رو توصيه می کنم هر چی باشه نام سايت هم گواه بر اين ادعاست. بنا به دلايلی که در آينده ذکر ميکنم، من PHP را دوست می دارم چنانکه او مرا دوست خواهد داشت.
 
نظرات شما(5)  
| صفحه قبل
 
 
نام: نيما شايافر
متولد: 7/7/1362
تحصيلات: دانشجو
شغل: طراح وب و برنامه نويس
وضعيت: آفلاين

ماهيانه
مرداد 86 (2)
خرداد 86 (1)
دي 84 (4)
آذر 84 (5)
مرداد 84 (1)
تير 84 (1)
ارديبهشت 84 (2)
دي 83 (1)
آذر 83 (2)
آبان 83 (2)
مهر 83 (4)
شهريور 83 (6)
مرداد 83 (3)
تير 83 (7)
خرداد 83 (7)
ارديبهشت 83 (8)
فروردين 83 (13)
اسفند 82 (12)

موضوعي






جستجوي پيشرفته

BlogRolling is currently inaccessible.
©2004, Design & Developed by: Nima Shayafar. All rights reserved.