LINUX.ORG.RU

Муки творчества

 , , , ,


2

1

Всем привет!

Наваял/напастил,наговнякал вот такой примерный php-скрипт конвертора docx —> pdf.

Пока правда его не отлаживал, сразу, конечно, ничего не заработает :-)

А сюда пришел за «гнилыми помидорами» от сообщества: поругайте, подскажите, что можно сделать лучше.

Какие есть явные косяки, кроме php?

★★★★★
Ответ на: комментарий от Hater

Тоже не в счет, такая есть задачка)

Twissel ★★★★★
() автор топика

Кстати, да, с удалением временно каталога я, видимо, поторопился. Хз, сколько времени будет длиться конвертация,

пока поднимется XSLT 2.0 процессор на Java, пока отработает TCPDF...

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)

tcpdf

Всем привет!

Наваял/напастил,наговнякал вот такой примерный SHELL-скрипт конвертора jpeg —> png.

#!/bin/sh
convert $1 $2

Пока правда его не отлаживал, сразу, конечно, ничего не заработает :-)

А сюда пришел за «гнилыми помидорами» от сообщества: поругайте, подскажите, что можно сделать лучше.

Какие есть явные косяки, кроме SHELL?

EXL ★★★★★
()
Ответ на: комментарий от EXL

А сюда пришел за «гнилыми помидорами» от сообщества

[trollmode] ImageMagick же, юзай только православный gd и только php. [/trollmode] А чем так плох, tcpdf?

Twissel ★★★★★
() автор топика

Code style? Отступы? Одинаковая инфа для каждого дока, одинаковые шрифты? Неотлаженое? Бессмысленные дебаги? Полно ненужных отступов? Очевидные комменты?

kachan ★★
()
Ответ на: комментарий от Stahl

Это понятно, у мну больше вопрос к опытным кодерам, есть ли явные огрехи, шо прямо глазки потекли :-)

Twissel ★★★★★
() автор топика

Добавь $page_name в список параметров функции Convertion. Не понятно откуда она там вылазит.
$proc,$xmlFile,$xslTable,$saxonProc со всеми кишками можно засунуть в Convertion
Extract можно тоже вызывать из Convertion, в который передавать только $page_name, $doc_name и $tmp_dir
$upload_path - это скорее $download_path
$page_name - это скорее $output_page

Ну и всякие вещи типа $doc_name = «commands.docx»; конечно же никуда не годятся.

crutch_master ★★★★★
()

Ты пользуешься ООП-либой, а сам городишь процедурщину. Какая гадость эта ваша заливная рыба.

Наваял/напастил,наговнякал вот такой примерный php-скрипт конвертора docx —> pdf.

Ты не наваял, и не напастил и не наговнякал _скрипт конвертора_. Ты просто взял либу, дал на вход один говно-формат, и получил (с помощью либы) другой. Впрочем, EXL тебе уже все верно выше сказал. Вопрос в том зачем ты это принес сюда?

поругайте, подскажите, что можно сделать лучше.

Так нечего ругать. Там нет ничего, кроме небольшой демки работы TCPDF.

Пока правда его не отлаживал, сразу, конечно, ничего не заработает :-)

Отлаживал? Отлаживал? :)

znenyegvkby
()
Ответ на: комментарий от crutch_master

Вот спасибо, комментарий по делу.

Ну и всякие вещи типа $doc_name = «commands.docx»; конечно же никуда не годятся.

Да, но это на первое время, чтобы оно признаки жизни подало, потом я хочу что оно получало имя файла из $POST массива, хотя тоже не фонтан, но это только начало пути.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от znenyegvkby

Вопрос в том зачем ты это принес сюда?

Чтобы получить дельный совет.

И один толковый коммент имеет место быть, надо заметить :-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Ааа. Ну не забудь тогда как-нить красиво прокомментировать потом

/******* ITS MA9I PERVA9I PROGA! SOSYNKI ******
******** MOU KOIIURAIT AZAZAZAZAZAZAZAZA ******
********   KYJLCCC XAKEP BAC9I PYPOK     ******

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Ты пользуешься ООП-либой, а сам городишь процедурщину.

Что поделать не умею я в ООП нормально, не джавист ;-)

Если моя работа заказчику понравится, тогда буду думать о дальнейшем развитии

в ООП-парадигме.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

И один толковый коммент имеет место быть, надо заметить :-)

Не знаю где ты что там увидел. Все кто пытаются тебе что-либо советовать вообще что-либо _кроме remove_ твоего кода, очевидно, сами любители говнокодить. Мой тебе совет – отнеси это на говнокод.ру, там парни оценят.

znenyegvkby
()
Ответ на: комментарий от znenyegvkby

Не, она первая такого плана и на пыхе)

Троллинг засчитан ;-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Если моя работа заказчику понравится

Заказчик будет оценивать результат. _Результат работы_ (не твоей либы). Т.е. ты к оценке результат не имеешь отношения от слова _совсем_. Ты же просишь здесь людей оценить _твой код_. Я дал тебе уже дельный совет – с таким извращением сходи на говнокод.ру – там тебе подскажут что делать.

znenyegvkby
()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от Twissel

Хорошо бы еще что-нибудь придумать, чтобы не было шуршания диска в плане распаковки, входных и выходных файлов. Можно конечно и так, но потом всё это надо будет чистить и что-то придумывать для создания временных ссылок. Проще просто забрать файл прямо из потока, обработать и вернуть также ничего не куда не записывая, кроме как в память.

crutch_master ★★★★★
()
Ответ на: комментарий от Twissel

Злой ты какой-то сегодня :-)

Нет, это просто последствия разочарования от корреляции названия темы с разделом web-dev.

P.S. За помидоры спасибо :-)

Ну все как ты просил.

znenyegvkby
()
Ответ на: комментарий от crutch_master

Ага, тоже об этом думал)

Но мне пока это чудо-юдо надо запустить IRL.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от znenyegvkby

Нет, это просто последствия разочарования от корреляции названия темы с разделом web-dev.

Если что пусть модеры потрут или в толксы перенесут, чтоб ты нервы не тратил ;-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Слишком поздно :) Вот если б ты сразу назвал тему «Оцените мой первый говнокод», (как это обычно и делают), я бы и не зашел сюда. Но я уже ухожу, так что продолжайте, не стесняйтесь :)

znenyegvkby
()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от znenyegvkby

Мопед питомник не мой, кстати, хорошо, что напомнил, надо его оттуда убрать.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от crutch_master

у него дети кушать хотят

Бездомные дети вас не забудут (с) О.Бендер

:-D

Twissel ★★★★★
() автор топика
Ответ на: комментарий от znenyegvkby

О, теперь точно буду знать кого кастовать, если задумаю подобную хрень реализовать на Джава через REST API, используя docx4j.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Попробуй ещё от глобальных переменных избавиться.

И это, отступы должны приводиться в порядок в процессе написания кода, а не после.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

OK, спасибо, постараюсь.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Добавь $page_name в список параметров функции Convertion.

Верно подмечено, уже вижу, что с ней у меня явный косяк есть.

Twissel ★★★★★
() автор топика
                $handle = fopen($page_name,"w");
                fclose($handle);



Это что за хрень?
Сначала код приведи в порядок, а потом на ревью выкладывай

kiotoze ★★★★
()

Вот вы всего говорите, Царь, Царь...

а меня например интересует, почему не работает код ZipArchive(); обернутый в функцию Extract?

sudo cast deep-purple

Twissel ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Extract можно тоже вызывать из Convertion.

Для начала,в силу вышеизложенного, просто перенесу туда её код.

И так по зернышку, по зернышку приду к рабочему варианту.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от kiotoze

Мопед не мой, это паста из примеров автора TCPDF :-)

Спасибо)

Twissel ★★★★★
() автор топика

Ну как тебе сказать. Где соблюдение PSR? Не используй «@» в PHP, никогда. Какой смысл использовать unset перед завершением функции? Какой вообще смысл его использовать, это вопрос для другой дискуссии конечно же.

$handle = fopen($page_name,"w");
fclose($handle);

// FYI
touch($pageName);

chuppa
()
Ответ на: комментарий от chuppa

Какой смысл использовать unset перед завершением функции?

Так предлагают делать авторы Saxonica, за touch спасибо, сам думал его использовать.

Потом прочитал руководства на php.net, чего-то дернуло меня на fopen.

Благодарю за отклик.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Но ведь переменные, которые ты удаляешь, уже и так почти теряют свою область видимости и соотв. они будут уничтожены автоматически, unset никоим образом не освобождает какую либо память, он просто уничтожает ссылку на данные, а уничтожать будет когда то потом gc.

chuppa
()
Ответ на: комментарий от chuppa

Я в курсе.

Просто пока «склеил» разные куски кода из примеров используемых проектов и получил

монстрика по ссылке.

Теперь постараюсь навести порядок.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Надо писать вот так:

$zip->open('file.zip', ZipArchive::CREATE);

тогда работает.

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.